ibatis学习基本例子

来源:互联网 发布:n86软件 编辑:程序博客网 时间:2024/05/29 01:55

一、项目目录结构图。

─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 whereuserName = #{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 blocke.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 blocke.printStackTrace();}}}



0 0
原创粉丝点击