ibatis学习基本例子

一、项目目录结构图。

─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();
		}
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值