JDBC

  • Java Database Connectivity Java数据库连接,实际上JDBC就是java中一套和数据交换的API(application Program Interface 应用程序编程接口)
    JDBC的内容从ListUserServlet分离出来,使用一个类,单独封装起来。这样的类,这样的类,在行业中称为 DAO 类
    DAO中方法的命名规范(了解)
    DAO中的方法涉及4种操作:增删改查 (Create Read Update Delete)

    增: insertXXX() 或者 saveXXX() saveUser()
    删: deleteXXX() 或者 removeXXX() deleteUser() delUser()
    改: updateXXX()
    查:
    查1条: getXXX()
    查多条: listXXX()

    如果这些操作有条件,在后面加By。。。
    getUserByID()->通过id查用户
    getUserByUsername()->通过用户名查用户

  • 如何使用JDBC

创建Maven工程
去maven私服搜索mysql 找到5.1.6驱动的坐标 maven.tedu.cn maven.aliyun.com

1.注册驱动

Class.forName(“com.mysql.jdbc.Driver”); driver,驱动
2.获取连接对象
Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/newdb3”,“root”,"");
3.创建SQL执行对象
Statement stat = conn.creatStatement(); Statement,声明
PreparedStatement ps = conn.prepareStatement(sql);
4.执行SQL语句
stat.excute(sql);excute,执行
conn.close;

@Test 测试

Statement
execute() 此方法可以执行任意SQL语句,但是推荐执行DDL数据定义语言
executeUpdate() 此方法执行增删改SQL语句
executeQuery() 此方法执行查询SQL语句 ,返回值为ResultSet结果集对象
ResultSet结果集
next() 判断是否有下一条数据,有则返回true 否则false,同时游标往下移动一位
getString/Double/float/Int() 获取结果集中的数据
getString(“ename”) 获取字段名为ename的数据
getString(1) 查询结果中 字段的位置

数据库连接池DBCP Database Connection Pool
为什么使用dbcp:可以将连接重用,节省资源,提高执行效率

create table jdbcuser(id int,username varchar(10),password varchar(10)); insert into jdbcuser values(1,‘libai’,‘admin’),(2,‘liubei’,‘123456’);

select count(*) from jdbcuser where username=‘libai’ and password=‘admin’;

select count(*) from jdbcuser where username=‘sdfsdf’ and password=’’ or ‘1’=‘1’

预编译SQL执行对象 PreparedStatement
当SQL语句中存在变量的时候使用PreparedStatement,没有变量时使用Statement
PreparedStatement好处:
代码可读性高不易出错
可以避免SQL注入,因为在编译时已经把SQL语句中的逻辑锁死,不会被替换进去的变量影响
批量操作
如果不是用批量操作,假设有5条SQL语句需要执行,则需要传输5次,使用批量操作可以将5次传输合并成一次传输,充分利用带宽,从而提高执行效率
事务
关掉MySQL的自动提交 相当于执行begin指令 conn.setAutoCommit(false);
提交 conn.commit();
回滚 conn.rollback();
准备表和数据 create table jdbcaccount(id int,name varchar(10),money int); insert into jdbcaccount values(1,‘超人’,50),(2,‘蝙蝠侠’,5000);

需求:程序每执行一次 蝙蝠侠给超人转账2000 如果蝙蝠侠的钱不够时提示转账失败

获取自增主键值
demo01 测试DBUtils的查询
demo02 数据库连接池
demo03 测试SQL注入 登录练习 PreparedStatement
demo04 statement的批量操作
demo05 preparedStatement的批量操作
demo06 分页查询
demo07 事务练习
demo08 获取自增主键值
demo09 球队球员练习
demo10 元数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值