JDBC学习记录

本内容为本人的学习记录,内容不一定准确,如有错误,请指出。

在进行实习操作之前请确定已经下载并导入jar包。

JDBC有重要的编程六步

					1.. 注册驱动,作用:告知Java程序,连接的数据库品牌
					2. 获取连接
					3. 获取数据库操作对象
					4. 执行sql语句
					5. 处理查询结果
					6. 释放资源(使用完成一定要关闭资源)

注册驱动:

Driver driver = new com.mysql.cj.jdbc.Driver();//注意第一个Driver是sql包下的,和第二个不相同
            DriverManager.registerDriver(driver);

获取连接

 String password="";//获取密码
 String user="root";//获取用户名
 String url="jdbc:mysql://localhost:3306/data?useSSL=false&serverTimezone=UTC";
//jdbc:mysql://IP地址//端口号?severTimezone=UTC 设置时区在最后面加上,ip地址可以写localhost或者本机IP。
            Connection conn=DriverManager.getConnection(url,user,password);//获取连接
            System.out.println(conn);//测试是否连接成功

获取数据操作对象

 Statement stme=conn.createStatement();

执行sql语句

String sql="insert into stu(ID,name) values(1001,'张三');";
int i = stme.executeUpdate(sql);//执行DML语句,返回值是影响的数据条数
 System.out.println(i);//返回影响了几条数据

处理查询结果

/*执行的sqk语句是插入语句,所以无需操作*/

关闭释放资源

finally {

            if (stme!=null){
                try {
                    stme.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            try {
                if (conn!=null){
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

JDBC查询

如果要执行查询语句,那么在第四步执行查询语句换成:
//rs.getString()中可以写入列数,从1开始,也可以写入要输入列数的名字。

String sql="SELECT * FROM stu";
  ResultSet rs=stat.executeQuery(sql);
while (rs.next()){
                System.out.print(rs.getString("id"));
                System.out.print(rs.getString("name"));
                System.out.print(rs.getString("age"));
                }

将jdbc信息配置在文件中

在src下创建jbdc.properties,里面存放配置信息

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/data?useSSL=false&serverTimezone=UTC
user=root
password=15815958785

读取配置信息

  ResourceBundle rb= ResourceBundle.getBundle("jbdc");

        String driver = rb.getString("driver");
        String url = rb.getString("url");
        String user = rb.getString("user");
        String password = rb.getString("password");

Sql注入

如果我们在输入密码时加上 username = 1’or’1’='1 那么它会改变sql’语句原本的意思,为了防止这种情况,我们需要进行防护。

如果解决:

只要用户提供的信息不参与sql语句的编译过程
在conn连接下面中将jdbc的提交改为手动提交。

conn.setAutoCommit(false);

然后在最下面进行提交

 conn.commit();//提交
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值