L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.
golang prend en charge une variété de bases de données
1. MySQL
MySQL est un système de gestion de base de données relationnelle. MySQL adopte une politique de double autorisation, qui peut enregistrer des données dans différentes tables, augmentant ainsi la vitesse de la base de données. et flexibilité, avec une petite taille, une vitesse élevée et un faible coût total de possession.
2. Oracle
oracle est un système de gestion de bases de données relationnelles, qui occupe une position de leader dans le domaine des bases de données. Il présente les caractéristiques d'une bonne portabilité, d'une utilisation facile et de fonctionnalités puissantes. , moyens, petits et micro-ordinateurs. L'environnement est une base de données à haute efficacité, bonne fiabilité et haut débit.
3. SQLite
SQLite est une base de données légère qui suit le système de gestion de base de données relationnelle ACID. Elle est conçue pour une utilisation embarquée et peut être utilisée dans de nombreux produits embarqués et peut être utilisée avec C#, PHP, Java, etc. en combinaison avec des langages de programmation.
4. MongoDB
MongoDB est une base de données basée sur le stockage de fichiers distribué. Son objectif est de fournir des solutions de stockage de données évolutives et performantes pour les applications WEB. La structure de données prise en charge par MongoDB est très lâche et prend en charge plusieurs langages de requête. et l'indexation.
5. PostgreSQL
PostgreSQL est un puissant système de gestion de base de données relationnelle objet avec du code open source. Il possède des fonctionnalités telles que des requêtes complexes, des clés étrangères, des déclencheurs, des vues, l'intégrité des transactions et le contrôle de concurrence multi-versions. La fonction exécute le programme d'instructions côté serveur de base de données et l'utilisateur peut personnaliser la méthode d'indexation.
6. SQL Sever
SQL Sever est un système de gestion de base de données relationnelle. Il présente les avantages d'une utilisation facile, d'une bonne évolutivité et d'un degré élevé d'intégration des logiciels associés. Il peut fournir des performances de stockage plus sûres et plus fiables. , vous pouvez créer et gérer des applications de données hautement disponibles et performantes pour l'entreprise.
golang exploite la base de données MySQL
Ce qui suit présente principalement l'utilisation de MySQL dans le langage Go sous les aspects d'ajout, de suppression, de modification et autres
1. Connectez-vous à la base de données
Utilisez SQL. Fonction Open() pour ouvrir la connexion à la base de données. Le format de la chaîne de connexion à la base de données (dsn) est le suivant :
admin:123456@tcp(10.2.1.5)/irisapp
Le code est le suivant :
func (f *mysql_db) mysql_open() { db, err := sql.Open("mysql", dbusername+":"+dbpassword+"@tcp("+dbhostsip+")/"+dbname) if err != nil { fmt.Println("链接失败") } fmt.Println("链接成功") f.db = db }
2. Insérez
func (f *mysql_db) mysql_insert() { //insert 添加数据 fmt.Println("开始插入") stmt, err := f.db.Prepare("INSERT INTO depart(departName,memo) VALUES(?,?)") //defer stmt.Close() if err != nil { fmt.Println("插入失败") return } stmt.Exec("dd", "adadcccda") fmt.Println("插入成功") }
3. Requête
func (f *mysql_db) mysql_select(sql_data string) { //select 查询数据 fmt.Println("sql:", sql_data) rows, err := f.db.Query(sql_data) if err != nil { fmt.Println("查询失败") } for rows.Next() { var departID int var departName string var memo string err = rows.Scan(&departID, &departName, &memo) if err != nil { panic(err) } fmt.Println("departName:", departName) } }
4. Mettre à jour
func (f *mysql_db) mysql_update() { //update 修改数据 stmt, err := f.db.Prepare("update depart set departName=?,memo =? where departId=?") //defer stmt.Close() if err != nil { //错误处理 } result,_ := stmt.Exec("aa","asdfadsadsfa",1) if result == nil { fmt.Println("修改失败") } affect_count,_ := result.RowsAffected() //返回影响的条数,注意有两个返回值 fmt.Println("%v",affect_count) }
5. Supprimer
func (f *mysql_db) mysql_delete() { //delete 删除数据 stmt, err := f.db.Prepare("delete from depart where departId=?") //defer stmt.Close() if err != nil { //错误处理 } stmt.Exec(2) //不返回任何结果 fmt.Println("删除成功") }
6. Choses
func (f *mysql_db) mysql_tran(){ //事务 tx,err := f.db.Begin() //声明一个事务的开始 if err != nil { fmt.Println(err) return } insert_sql := "insert into depart (departName,memo) VALUES(?,?)" insert_stmt,insert_err := tx.Prepare(insert_sql) if insert_err != nil { fmt.Println(insert_err) return } insert_res,insert_err := insert_stmt.Exec("ff","ff") last_insert_id,_ := insert_res.LastInsertId() fmt.Println(last_insert_id) // defer tx.Rollback() //回滚之前上面的last_login_id是有的,但在回滚后该操作没有被提交,被回滚了,所以上面打印的Last_login_id的这条数据是不存在与数据库表中的 tx.Commit() //这里提交了上面的操作,所以上面的执行的sql 会在数据库中产生一条数据 }
Appeler
func main() { db := &mysql_db{} db.mysql_open() db.mysql_insert() db.mysql_update() db.mysql_delete() db.mysql_tran() db.mysql_select("select departID,departName,memo from depart") db.mysql_close() //关闭 }
Le résultat après le démarrage est le suivant : ee
Code completD:\Go_Path\go\src\mysqldemo>go run mysqldemo.go 链接成功 开始插入 插入成功 0 删除成功 10 sql: select departID,departName,memo from depart departName: aa departName: dd departName: dd departName: dd departName: dd departName: dd departName: ff departName: dd departName: ff
Résumé
1. Prend en charge les expressions de préparation, qui peuvent être utilisées pour optimiser les requêtes SQL afin d'améliorer les performances, réduisant ainsi le risque d'injection SQL, db.Prepare() et tx.Prepare prennent tous deux en charge les expressions préparées. 2. LastInsertId() Obtenir l'identifiant du premier élément inséré3. RowsAffected() Obtenir le nombre d'éléments affectés/insérés4. Voici une brève introduction à l'utilisation de base de MySQL dans le développement du langage Go, en fait, dans le processus de développement actuel, les frameworks tiers liés à l'ORM sont encore principalement utilisés, mais les principes sous-jacents doivent encore être appris. Pour plus de connaissances sur le langage Go, veuillez prêter attention à la colonneTutoriel sur le langage Go sur le site Web PHP chinois.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!