本文主要是示范基于Maven的MyBatis+Spring的简单使用,其中主要涉及到的是MyBatis的配置使用,另外还有部分log4j的配置使用。
项目概述
本文项目是基于MyEclipse、JDK1.7、MySQL进行开发的,主要功能是通过MyBatis实现对User这个Bean类进行增删改查操作。
先展示下整个项目的结构:
新建web project
如图所示(勾选Maven支持):
一路next,勾选产生web.xml
最后生成的项目pom.xml
文件中会有很多乱七八糟的<dependency>
,可以将他们删了,本小项目中暂时用不掉这些。
准备数据库表
使用mybatis数据库,没有就新建一个。
use mybatis;
drop table if exists tb_user;
create table tb_user(
id int primary key auto_increment comment '主键',
username varchar(40) not null unique comment '用户名',
password varchar(40) not null comment '密码',
email varchar(40) comment '邮件',
age int comment '年龄',
sex char(2) not null comment '性别'
);
相关的Java处理类
- 数据库表对应的实体类
User.java
:
(省略了相关的getter和setter)
package com.liuhao.entity;
public class User {
private int id;
private String username;
private String password;
private String sex;
private String email;
private int age;
//getter() and setter ()
}
UserDao.java
,可以对User进行插入、更新、删除、查找、列出所有等操作:
package com.liuhao.dao;
import java.util.List;
import com.liuhao.entity.User;
public interface UserDao {
public int insert(User user);
public int update(User user);
public int delete(String userName);
public List<User> selectAll();
public int countAll();
public User findByUserName(String userName);
}
UserService
接口:
package com.liuhao.service;
import java.util.List;
import com.liuhao.entity.User;
public interface UserService {
. public int insert(User user);
public int update(User user);
public int delete(String userName);
public List<User> selectAll();
public int countAll();
public User findByUserName(String userName);
}
- 实现service接口,执行dao操作:
package com.liuhao.service.impl;
import java.util.List;
import com.liuhao.dao.UserDao;
import com.liuhao.entity.User;
import com.liuhao.service.UserService;
public class UserServiceImpl implements UserService {
public UserDao userDao;
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public int insert(User user) {
return userDao.insert(user);
}
@Override
public int update(User user) {
return userDao.update(user);
}
@Override
public int delete(String userName) {
return userDao.delete(userName);
}
@Override
public List<User> selectAll() {
return userDao.selectAll();
}
@Override
public int countAll() {
return userDao.countAll();
}
@Override
public User findByUserName(String userName) {
return userDao.findByUserName(userName);
}
}
相关配置文件
- Mapper文件配置
/test/config/com/liuhao/dao/UserDao.xml
:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liuhao.dao.UserDao">
<!-- 查询表中记录总数 -->
<select id="countAll" resultType="int">
select count(*) c from tb_user
</select>