public class ddd {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库链接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1", "username", "password");
// 定义sql语句
String sql = "update account set [列名]= [修改值] where [条件语句]";
// 获取执行sql的对象
Statement stmt = conn.createStatement();
// 执行sql
int count = stmt.executeUpdate(sql);
System.out.println(count);
// 释放资源
stmt.close();
conn.close();
}
}
讲解:
对各个对象的解释
1. DriverManager:驱动管理对象
* 功能
1. 注册驱动
在com.mysql.jdbc.Driver中有一个静态代码块,在静态代码块中我们注册驱动
注册驱动的意义是:告诉程序该使用哪一个数据库驱动jar包
在mysql5之后的jar包中可以省略注册驱动这个步骤
2. 获取数据库链接
Connection conn = DriverManager.getConnection(url, username, password);
url:指定链接路径,mysql的数据库就是这样写
"jdbc:mysql://localhost:3306/mydb1"
链接自己本地的数据库,且数据库的端口号为3306的话可以这样写
"jdbc:mysql:///mydb1"
username:用户名
password:密码
2. Connection:数据库链接对象
1. 功能:
1. 获取执行sql的对象
* Statement createStatement()
*PreparedStatement prepareStateMent(string sql)
2. 管理事务:
* 开启事务
void setAutoCommit(boolean autoCommit):调用该方法设置参数为false
* 提交事务
commit()
* 回滚事务
rollback()
3. Statement:执行sql语句的对象
1. 执行sql
1. boolean execute(String sql):了解一下就可以了
2. int executeUpdate(Stirng sql):执行DML(增删改), DDL()语句
返回值是影响的行数, 这可以帮助我们确认是否执行成功
3. ResultSet executeQuery(String sql):执行DQL(select) 语句
返回一个结果集对象
4. ResultSet:执行结果对象
* next():游标向下移动一行
* getXxx(参数): Xxx代表数据类型 getInt...
参数:可以是..1 int, 这时候代表列数
2. String 这时候代表是列名
5. PreparedStatement:执行Sql
问题:
sql注入问题 在拼接sql的时候,有一些sql的特殊关键字参与字符串的拼接
会造成安全性问题
解决:PreparedStatement来解决问题
使用预编译的SQL,所有参数使用?作为占位符
使用步骤:
1. 导入驱动jar包, mysql-connector-java-5.1.37-bin.jar
2. 注册驱动
3. 获取数据库链接对象Connection
4. 定义sql
* 参数使用?作为占位符
5. 获取PreparedStatement对象 Connection.prepareStatement(sql)
6. 给?赋值:
* 方法:setXxx(参数1, 参数2)
* 参数1,问号的位置
* 参数2,问好的值
7. 执行sql语句,不再传递sql语句
8. 处理数据
9. 释放资源
6. 数据库链接池:
* 概念:其实就是一个容器(集合),存放数据库链接的容器
当系统初始化好之后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时
从容器中获取链接数据库的容器。
* 好处:
1. 节约资源
2. 用户访问高效
实现:
1. 标准接口:DataSource javax.sql包下的
* 方法:获取连接:getConnection()
归还连接:从连接池中获取的方法使用close()方法就可以归还连接,而不是关闭
2. 一般我们不去实现它,由数据库厂商来实现
1. C3P0:数据库连接技术
使用步骤:1. 导入jar包,c3p0-0.9.5.2.jar
mchange-commons-java-0.2.12.jar
2. 定义配置文件:
名称:c3p0.properties 或者 c3p0-config.xml
路径:src 下即可
3. 创建核心对象 数据库连接池对象 ComboPooledDataSourcce
4. 获取连接:getConnection
2. Druid:数据库连接池实现技术,由阿里巴巴提供的
1. 导入jar包 druid-1.0.9.jar
2. 定义配置文件:
* 是properties文件
* 可以叫任意名称,可以放在任意的目录下
3. 获取数据库连接池对象:DruidDataSourceFactory
4. 获取连接:getConnection
5. 定义工具类
1. 定义一个类 JDBCUtils
2. 提供静态代码块,加载配置文件,初始化连接池对象
3. 提供方法
1. 获取连接的方法;通过数据库连接池获取连接
2. 释放资源
3. 获取连接池的方法
7. Spring JDBC:JDBC Template
Spring JDBC
Spring 框架对JDBC的简单封装。提供了一个JDBCTmplate对象嘉华JDBC开发
步骤:1. 导入jar包
2. 创建JdbcTemplate对象,DataSourse
3. 调用jdbcTmplate的方法来完成CRUD的操作
* update():执行DML语句:增删改
* queryForMap:查询结果封装成Bean对象
* queryForList:查询结果封装成List对象
* query():查询结果封装成JavaBean对象