一、项目目录结构图。
─src
├─action
│ UserAction.java
│
├─dao
│ UserDao.java
│
├─entity
│ User.java
│ userMapper.xml
│
├─properties
│ configuration.xml
│
├─service
├─servlet
│ UserServlet.java
│
└─test
MyBatisTest.java
二、相关jar包
mysql-connector-java-5.1.18-bin.jar
mybatis-3.0.5.jar
三、类和配置文件内容
1.相关实体类user:
package entity;
/**
* 登陆用户
* @wyh
*/
public class User {
public int userCode;
public String userName;
public String password;
/**用户类型分为 0系统管理员,1医院人员,2表示患者类型*/
public int userType;
public String phone;
public User() {
}
public User(String userName, String password, int userType, String phone) {
this.userName = userName;
this.password = password;
this.userType = userType;
this.phone = phone;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getUserCode() {
return userCode;
}
public void setUserCode(int userCode) {
this.userCode = userCode;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getUserType() {
return userType;
}
public void setUserType(int userType) {
this.userType = userType;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
2.dao层接口UserDao类
package dao;
import java.util.List;
import entity.User;
/**
* 注册用户操作类
*/
public interface UserDao {
public void addUser(User user) throws Exception;
public List<User> findAll() throws Exception;
public void deleteUser(int userCode) throws Exception;
/**
* 判断用户名密码是否正确,如果正确,则返回该对象,不正确在返回null
* @param userName
* @param password
* @return
* @throws Exception
*/
public User checkUser(String userName,String password)throws Exception;
public User findByName(String name)throws Exception;
public void modify(User user) throws Exception;
}
3.相关连接数据库的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--environments决定加载哪种环境,包括数据源和事务管理器。-->
<environments default="development">
<environment id="development">
<!-- transactionManager 事物管理器 -->
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/ecrm"/>
<property name="username" value="root"/>
<property name="password" value="root123"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--userMapper.xml装载进来 同等于把“dao”的实现装载进来 -->
<mapper resource="entity/userMapper.xml" /></mappers>
</configuration>
4.userMapper.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="dao.UserDao">
<resultMap id="userList" type="entity.User">
<id column="userCode" property="userCode" jdbcType="INTEGER" />
<result property="password" column="password"></result>
<result property="phone" column="phone"></result>
<result property="userName" column="userName"></result>
<result property="userType" column="userType"
jdbcType="INTEGER"></result>
</resultMap>
<!-- 返回list<user>列表 -->
<select id="findAll" resultMap="userList">
select userCode,userName,password,userType,phone from register
</select>
<!-- id必须和接口类的方法名一致,不然会出现Mapped Statements collection does not contain value for的错误 -->
<select id="findByName" parameterType="String"
resultType="entity.User">
select userName,password,userType,phone from register where
userName = #{userName}
</select>
<insert id="addUser" parameterType="entity.User">
insert into register(userName,password,userType,phone) value
(#{userName},#{password},#{userType},#{phone})
</insert>
<update id="modify" parameterType="entity.User">
update register
<set>
<if test="userName != null">userName = #{userName},</if>
<if test="password != null">password = #{password},</if>
<if test="phone != null">phone = #{phone}</if>
</set>
where userCode = #{userCode}
</update>
<delete id="deleteUser" parameterType="int">
delete from register where userCode = #{userCode}
</delete>
</mapper>
5.测试类:MyBatisTest
package test;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import dao.UserDao;
import entity.User;
public class MyBatisTest {
private static SqlSessionFactory getSessionFactory() {
SqlSessionFactory sessionFactory = null;
String resource = "properties/configuration.xml";
try {
sessionFactory = new SqlSessionFactoryBuilder().build(Resources
.getResourceAsReader(resource));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sessionFactory;
}
public static void main(String[] args) {
SqlSession sqlSession = getSessionFactory().openSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
try {
// User user = userDao.findByName("admin" );
User user = new User();
user.setUserCode(3);
List<User> lists = userDao.findAll();
user.setUserName("mei");
user.setPassword("meide123");
// userDao.addUser(user);
// userDao.modifyPassword(user);
userDao.deleteUser(5);
sqlSession.commit();
// System.out.println(lists.get(1).getPassword());
System.out.println(user.getPassword());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}