JDBC

来源:互联网 发布:怡海软件技术有限公司 编辑:程序博客网 时间:2024/05/16 18:54
步骤
1、告知驱动管理器,配置数据库应用,即加载驱动
Class.forname("com.mysql.jdbc.Driver"); //加载驱动

2、获取连接(导包的时候一定要注意导java的包)

Connection con = null ;
//通过驱动管理器去获取连接---三个参数:URL(统一资源定位符),用户名,密码
URL格式:协议://对方机器Ip地址:端口号/资源名
http : //192.168.23.143 : 9527 / index.heml
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/testquery" , "root" , "lovo" )
修改字符编码 useUnicode=true&characterEncoding=utf8
记住要关闭管道

3、书写sql语句
。。。
添加表信息的时候
注意错误 1)注意字符串的单引号 2)换行的时候注意在哪儿换行

4、利用连接创建获取语句对象--Statement
Statement stat = con.createStatement

5、语句对象执行sql
int row = stat.executeUpdate(sql);---返回只是一个int,是返回影响了多少行
查询语句是用executeQuery( ),返回的是一个结果集对象
ResultSet rs = state.executeQuery(sql)

查询是返回一个Bean对象

t_user表 id name password
1、写一个程序,弹出框接收用户输入,完成登录
2、加入数据以后,从弹出框接收用户输入,完成用户登录
3、单独书写一个程序,从弹出框接收用户输入的用户名和新密码,修改密码
4、单独书写程序,从弹出框接收用户输入,输入的用户名的一部分,完成模糊查找

sql注入:拼接字符串造成的
解决:不使用Statement,换成预编译语句对象
PrepareStatement
先把结构固定的sql语句交给数据库编译,再把值传入进去,让数据库执行
使用:1、sql固定结构照常写,没有固定的值需要用?表示 ,省略引号
注意:问号只能传值,不能传任何与sql结构有关的东西!
2、交给数据库先执行,产生预编译语句对象
3、通过set方法,set方法里边传的第一个参数是下标,只能是数字(下标是从1开始),第二个参是值

事务
设置不自动提交:con.setAutoCommit(flase);
最后设置整体提交 con.commit();
如果失败,事务回滚:con.rollback();

由于要获取新增记录的ID——有数据库自动生成——在执行SQL语句时,要多传一个参数
state.ececuteUpdate(sql,state.RETURN_GENERRATED_KEYS)
ResultSet rs =

0 0
原创粉丝点击