步骤:
1 在mysql中创建数据库和数据库表
CREATE DATABASE day2_jdbc;
USE day2_jdbc;
CREATE TABLE t_user(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50),
PASSWORD VARCHAR(20)
)CHARACTER SET=utf8;
解释:
CHARACTER SET=utf8 为了支持中文,不出现乱码。
向数据库表中插入数据:
INSERT INTO t_user(username,PASSWORD)VALUES('tom','123456');
INSERT INTO t_user(username,PASSWORD)VALUES('jam','123456');
INSERT INTO t_user(username,PASSWORD)VALUES('zhangsan','123456');
INSERT INTO t_user(username,PASSWORD)VALUES('rose','123456');
2 创建web project工程(day2_springJdbc)
3 导包
从《day02\2用到的jar包》复制过来
说明:
C3p0 连接池的包
dbcp连接池的包
Mysql的驱动包
Spring的4个核心包1个依赖包
Spring jdbc包
Spring的事务包
4 创建com.it.api包
5在这个包中创建User.java文件
代码如下:
package com.it.api;
public class User {
private Integer id;
private String username;
private String password;
// 生成get set 方法
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
// 生成toString方法
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password="
+ password + "]";
}
}
6 编写测试类对数据库进行操作。
代码如下:
package com.it.api;
import org.apache.commons.dbcp.BasicDataSource;
import org.springframework.jdbc.core.JdbcTemplate;
public class test {
public static void main(String[] args) {
// 1 创建数据源(连接池) dbcp
BasicDataSource basicDataSource = new BasicDataSource();
// 给BasicDataSource中的成员变量赋值
// 注册驱动
basicDataSource.setDriverClassName("com.mysql.jdbc.Driver");
/*
* jdbc:mysql://localhost:3306/day2_jdbc
* 解释: localhost代表本机
* 3306 代表mysql
* day2_jdbc 代表数据库的名字
useUnicode=true&characterEncoding=utf-8 支持中文,不会出现乱码
*/
basicDataSource.setUrl("jdbc:mysql://localhost:3306/day2_jdbc?useUnicode=true&characterEncoding=utf-8");
// 设置账号
basicDataSource.setUsername("root");
// 设置密码
basicDataSource.setPassword("123456");
//2 创建模板
JdbcTemplate jdbcTemplate = new JdbcTemplate();
// 把数据源(dbcp)设置进去
jdbcTemplate.setDataSource(basicDataSource);
//通过jdbctemplate操作数据库
jdbcTemplate.update(" INSERT INTO t_user(username,PASSWORD)VALUES(?,?)","王二傻","123");
}
}
JdbcTemplate第二种写法
步骤:
1 创建com.it.jdbc包
2 创建user类
代码如下:
package com.it.jdbc;
public class user {
private Integer id;
private String username;
private String password;
// 生成get set 方法
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
// 生成toString方法
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password="
+ password + "]";
}
}
3在这个包中创建工具类(UserDao)
代码如下:
package com.it.jdbc;
import org.springframework.jdbc.core.JdbcTemplate;
/*
* 工具类 (对数据库操作)
*
*/
public class UserDao {
//使用spring进行注入
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
// 更新数据库 (update方法)
public void update(user user){
String sql="update t_user set username=?,password=? where id=?";
Object[] args={user.getUsername(),user.getPassword(),user.getId()};
jdbcTemplate.update(sql, args);
}
}
4 在这个包中创建beans.xml文件
添加约束<spring约束3.txt>
代码如下:
<!-- dbcp数据源
查找BasicDataSource类的全路径: shift+ctrl+t
-->
<bean id="dataSourceId" class="org.apache.commons.dbcp.BasicDataSource">
<!-- 注入 却动-->
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<!-- 注入地址 -->
<property name="url" value="jdbc:mysql://localhost:3306/day2_jdbc?useUnicode=true&characterEncoding=utf-8"></property>
<!-- 注入账号 -->
<property name="username" value="root"></property>
<!-- 注入密码 -->
<property name="password" value="123456"></property>
</bean>
<!--对JdbcTemplate类实例化 -->
<bean id="jdbcTemplateId" class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 注入数据源 -->
<property name="dataSource" ref="dataSourceId"></property>
</bean>
<!-- 对UserDao工具类进行实例化 -->
<bean id="userDaoId" class="com.it.jdbc.UserDao">
<!--把JdbcTemplate的实例注入给userDao类中的jdbcTemplate成员变量 -->
<property name="jdbcTemplate" ref="jdbcTemplateId"></property>
</bean>
5编写测试类
代码如下:
public class test {
public static void main(String[] args) {
user user = new user();
user.setId(8);
user.setUsername("香香");
user.setPassword("100");
String xmlPath="com/it/jdbc/beans.xml";
ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext(xmlPath);
UserDao bean =(UserDao) classPathXmlApplicationContext.getBean("userDaoId");
bean.update(user);
}
}