1、用户控制层
/**
* 用户控制层
*/
public class UserController {
public static void main(String[] args) throws Exception {
ApplicationContext ac = new ClassPathXmlApplicationContext("ApplicationContext.xml");
UserService userService = (UserService) ac.getBean("userServletImpID");
User user = new User();
user.setUid("u016");
user.setName("Peter二号");
user.setPsw("123123");
user.setImg("default.jpg");
userService.addUser(user);
User user1 = userService.queryUserByID(user.getUid());
System.out.println(user.toString());
}
}
2、结果
3、数据源信息(db.properties)
jdbc.url=jdbc:mysql://localhost:3306/mydb
jdbc.username=root
jdbc.password=123456
jdbc.driver=com.mysql.cj.jdbc.Driver
4、xml(ApplicationContext.xml)
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 导入数据库源信息 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置c3p0连接池配置 -->
<!-- 在c3p0jar包下 -->
<bean id="c3p0ID" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="driverClass" value="${jdbc.driver}"/>
</bean>
<!-- jdbc模板(jdbcTemplate) -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 连接数据源(数据库) -->
<property name="dataSource" ref="c3p0ID"/>
</bean>
<!-- 配置UserDaoImp对象 -->
<bean id="userDaoImpID" class="com.company.dao.UserDaoImp" scope="singleton">
<!-- property(属性)的name值必须和对象(UserDaoImp)中属性名一样 -->
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
<!-- 配置UserServiceImp对象 -->
<bean id="userServletImpID" class="com.company.service.UserServiceImp" scope="singleton">
<!-- property(属性)的name值必须和对象(UserServletImp)中属性名一样 -->
<property name="userDao" ref="userDaoImpID"/>
</bean>
</beans>
5、用户持久层接口
/ * 用户持久层接口
*/
public interface UserDao {
//创建用户
public void addUser(User user) throws Exception;
//查询用户
public User queryUserByID(String uid) throws Exception;
}
6、用户持久层接口实现
/ *
* 用户持久层接口实现
*/
public class UserDaoImp implements UserDao{
private JdbcTemplate jdbcTemplate;
//创建jdbcTemplate的getter和setter
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public void addUser(User user) throws Exception {
//创建sql语句
String sql = " insert into user values (?, ?, ?, ?) ";
//执行sql语句
jdbcTemplate.update(sql, user.getUid(), user.getName(), user.getPsw(), user.getImg());
}
@Override
public User queryUserByID(String uid) throws Exception {
//创建sql语句
String sql = " select * from user where uid = ? ";
//执行sql语句
return jdbcTemplate.queryForObject(sql, new UserMapper(), uid);
}
}
7、用户服务层接口
*
* 用户服务层接口
*/
public interface UserService {
//创建用户
public void addUser(User user) throws Exception;
//查询用户
public User queryUserByID(String uid) throws Exception;
}
8、用户服务层接口实现
/*
* 用户服务层接口实现
*/
public class UserServiceImp implements UserService {
//类中对象
private UserDao userDao;
//创建getter和setter
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void addUser(User user) throws Exception {
userDao.addUser(user);
}
@Override
public User queryUserByID(String uid) throws Exception {
return userDao.queryUserByID(uid);
}
}
9、用户对象
public class User {
private String uid;
private String name;
private String psw;
private String img;
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPsw() {
return psw;
}
public void setPsw(String psw) {
this.psw = psw;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
@Override
public String toString() {
return "User{" +
"uid='" + uid + '\'' +
", name='" + name + '\'' +
", psw='" + psw + '\'' +
", img='" + img + '\'' +
'}';
}
}
10、用户映射关系
public class UserMapper implements RowMapper<User> {
@Override
public User mapRow(ResultSet resultSet, int i) throws SQLException {
//创建映射关系
User user = new User();
//获取数据库信息
String uid = resultSet.getString("uid");
String name = resultSet.getString("name");
String psw = resultSet.getString("psw");
String img = resultSet.getString("img");
//映射规则 column -> property
user.setUid(uid);
user.setName(name);
user.setPsw(psw);
user.setImg(img);
return user;
}
}