JDBC
Posted xueyong1021
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC相关的知识,希望对你有一定的参考价值。
JAVA 访问数据库的技术:Jdbc是一种Java连接数据库技术(Java database connectity), 它是 Java 提供的一些接口,这些接口大部分是数据库厂商提供的(jar包),我们要做的,是连接数据库以后,如何使用Java代码从数据库中存取数据!
Jdbc开发步骤
1. 引包:
2. 开启mysql服务,
3.准备好数据库
4.进入开发阶段
4.1注册数据库驱动
//MySQL驱动固定写法!注意是”MySQL数据库的驱动”
Class.forName("com.mysql.jdbc.Driver");
4.2和数据库建立连接
连接数据库必要的参数:
URL: 访问数据库的地址:写法:
jdbc:mysql://数据库所在Ip地址:数据库端口/数据库的名字
name : 要连接的数据库的账户名
password : 要连接数据库的用户密码
//找到本机的数据库应用,3306是数据库的默认端口 8080是tomkat的默认端口
String url = "jdbc:mysql://localhost:3306/student";
String name = "root";//将要连接数据库的账户
String password = "root";//将要连接数据库的密码
Connection connection = DriverManager.getConnection(url,name,password);
4.3获得执行sql语句的对象
用于执行SQL语句
PreparedStatement接口继承了Statement,
Statement(固定),和 PreparedStatement(可变参数) 是SQL语句的两种执行方式
1.在遇到要执行的SQL语句是带可变参数的时候,就用PreparedStatement对象,应为PreparedStatement可以用占位符将SQL语句加入可变参数!:
String sql = "insert into user(sno,name,age)values(?,?,?)";//定义一个要执行的SQL语句
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1,student.getSno());//设置SQL语句的第一个参数
ps.setString(2,student.getName());//设置SQL语句的第二个参数
ps.setInt(3,student.getAge());//设置SQL语句的第三个参数
2.当要执行的SQL语句的是不带可变参数的时(就是SQL语句不变时!):
String sql = "SELECT * FROM user";
Statement statement = connection.createStatement();//sql语句的执行对象
ResultSet row = statement.executeQuery(sql);//执行SQL语句
PreparedStatement 和Statement的区别:
PreparedStatement:用户通过你系统输入变量时,变量将加入你的SQL语句,这样就能在不知道你的用户输入的情况下,获取信息
4.4执行SQL语句
两种语句:
1).不用返回数据库信息:
增,删,改
exexuteUpdate() 方法 : 返回一个整形(对数据库影响的行数)
2).需要返回数据库信息:
查
exexuteQuery() 方法 : 返回一个结果集对象(Resultest 在数据库中查到的一条数据)
读取返回对象集中的数据的方法: (就是集合的迭代器)
Resultest.next()能够返回给你还有没有记录,
getObjeck方法,读取一条记录里面字段所对应的值
4.5处理执行后的结果
调用Dao的方法后返回一个结果给servlet 让servlet进行处理!:如:
int row = UserDAD.insert(student);
if (row==1){
jsonObject.put("code",1);
jsonObject.put("msg","添加成功");
jsonObject.put("data",student);
}else {
jsonObject.put("code",2);
jsonObject.put("msg","添加失败");
}
4.6 释放资源
将用到的传输有关的对象再传输完成后统统释放! 如:
ps.close();
connection.close();
以上是关于JDBC的主要内容,如果未能解决你的问题,请参考以下文章