Java中JDBC增加数据

时间:2021-02-23
本文章向大家介绍Java中JDBC增加数据,主要包括Java中JDBC增加数据使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、加载驱动

1 Class.forNmae("com.mysql.jdbc.Driver");
2 
3 /*
4   Class.forName(xxx.xx.xx) 返回的是一个类
5   Class.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段
6 */

2、获取数据库链接

1 Connection connection  = DriverManager.getConnection("jdbc:mysql://localhost:3306/test2","root","root");

3、预定义sql容器,并且盛放sql语句

1 String sql = "insert into t_user(user_name,passwd,name) values(?,?,?)";
2 PreparedStatement preparedStatement = connection.prepareStatement(sql);
3 
4 /*
5    Statement:用于执行静态 SQL 语句并返回它所生成结果的对象。只能执行一次
6    PreparedStatement:表示预编译的 SQL 语句的对象。SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句
8 */

4、为sql语句中的?赋值

 1 preparedStatement.setString(1,user.getUserName());
 2 preparedStatement.setString(2,user.getPassword());
 3 preparedStatement.setString(3,user.getName());
 4 
 5 /*
 6     set数据类型() 我们要根据数据库中字段的具体类型调用对应的方法 ,         
 7     varchar 对应 String, int 对应 Int ,bigint 对应 long
 8     参数1 为?的需要 1表示为第一个?赋值
 9     参数2 这个?的具体数据内容的数据来自当前方法的参数
10     注意:有几个问号,就需要有几行赋值,并且序号要与?一一对应 
11 */

5、执行SQL语句

1 preparedStatement.execute();

6、关闭数据,数据库资源

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.PreparedStatement;
 4 import java.sql.SQLException;
 5 
 6 public class UserDao {
 7 
 8     Connection connection = null;
 9     PreparedStatement preparedStatement=null;
10     /*
11     * 完成用户添加的数据库持久化方法
12     * user 需要被添加到数据库中的用户对象
13     * */
14     public void insertUser(User user){
15         try {
16             //1 加载驱动,通知JDBC我们即将链接什么数据库
17 
18             Class.forName("com.mysql.jdbc.Driver");
19 
20             //2 获取数据库链接
21             /*
22             * 参数1:
23             *       jdbc:mysql:// 协议名称
24             *       127.0.0.1 <=> localhost 为需要链接的数据库所在的ip地址
25             *       3306 为数据库端口号
26             *       test2 是所需要链接的具体的数据库的库名
27             * 参数2:
28             *       链接数据库时候数据库的用户名
29             * 参数3:
30             *       链接数据库时候数据库的密码
31             * */
32 
33             connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test2","root","root");
34 
35 
36             String sql = "insert into t_user(user_name,passwd,name) values(?,?,?)"; //定义sql语句 ?是占位符,需要后期动态为问号赋值
37 
38             //3 定义sql容器,并装载sql语句
39 
40             preparedStatement = connection.prepareStatement(sql);
41 
42             //4 为语句中的?赋值 可选操作步骤 如果语句中没有问号则不需要赋值
43             /*
44             * set数据类型() 我们要根据数据库中字段的具体类型调用对应的方法 , varchar 对应 String, int 对应 Int ,bigint 对应 long
45             * 参数1 为?的需要 1表示为第一个?赋值
46             * 参数2 这个?的具体数据内容的数据来自当前方法的参数
47             * 注意:有几个问号,就需要有几行赋值,并且序号要与?一一对应
48             * */
49 
50             preparedStatement.setString(1,user.getUserName());
51             preparedStatement.setString(2,user.getPassword());
52             preparedStatement.setString(3,user.getName());
53 
54             //5 执行sql语句
55             preparedStatement.execute();
56 
57         } catch (ClassNotFoundException e) {
58             e.printStackTrace();
59         } catch (SQLException throwables) {
60             throwables.printStackTrace();
61         }finally {
62             if (preparedStatement != null)
63             {
64                 try {
65                     preparedStatement.close();
66                 } catch (SQLException throwables) {
67                     throwables.printStackTrace();
68                 }
69             }
70             if (connection != null)
71             {
72                 try {
73                     connection.close();
74                 } catch (SQLException throwables) {
75                     throwables.printStackTrace();
76                 }
77             }
78         }
79     }
80 }

原文地址:https://www.cnblogs.com/hanfei123/p/14437656.html