Mybatis使用接口用户的增删改查

来源:互联网 发布:淘宝三颗心多少信誉 编辑:程序博客网 时间:2024/05/17 02:20

1.数据库:

create table t_user(
t_id number,
t_name varchar2(10),
t_password varchar2(20)
);

项目明细:


2.定义一个User类:

package com.ask.pojo;

import java.io.Serializable;
import java.util.Date;
//新建一个User得实体类;
public class User {
  private int t_id;
  private String t_name;
  private String t_password;
public int getT_id() {
    return t_id;
}
public void setT_id(int t_id) {
    this.t_id = t_id;
}
public String getT_name() {
    return t_name;
}
public void setT_name(String t_name) {
    this.t_name = t_name;
}
public String getT_password() {
    return t_password;
}
public void setT_password(String t_password) {
    this.t_password = t_password;
}
@Override
public String toString() {
    return "User [t_id=" + t_id + ", t_name=" + t_name + ", t_password="
            + t_password + "]";
}
public User(int t_id, String t_name, String t_password) {
    super();
    this.t_id = t_id;
    this.t_name = t_name;
    this.t_password = t_password;
}
public User() {
    super();
    // TODO Auto-generated constructor stub
}
 
        
        
}

3.定义一个UserDao接口:

package com.ask.dao;

import java.util.List;

import com.ask.pojo.User;

public interface UserDao {
    /*
     * 根据id查询用户
     */
    public User getUserById(int t_id)throws Exception;
    /*
     * 根据Name查询用户
     */
    public List<User> getUserByName(String t_name)throws Exception;
    /*
     * 查询所有用户
     */
    public List<User> getUsers()throws Exception;
    /*
     * 添加用户
     */
    public void insertUser(User user)throws Exception;
    /*
        * 更新用户
        */
       public void updateUser(User user)throws Exception;
       /*
        * 删除用户
        */
       public void deleteUser(int t_id)throws Exception;
    
}

4.UserDaoImpl:

package com.ask.dao.impl;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import com.ask.dao.UserDao;
import com.ask.pojo.User;

public class UserDaoImpl implements UserDao {
    private SqlSessionFactory sessionFactory;
    public UserDaoImpl (SqlSessionFactory sessionFactory){
        this.sessionFactory=sessionFactory;
    }
    @Override
    public User getUserById(int t_id) throws Exception {
        SqlSession session=sessionFactory.openSession();
        User user=session.selectOne("getUserById",t_id);
        return user;
    }

    @Override
    public List<User> getUserByName(String name) throws Exception {
        SqlSession session=sessionFactory.openSession();
        List<User> users=session.selectList("getUserByName",name);
        return users;
    }

    @Override
    public List<User> getUsers() throws Exception {
        SqlSession session=sessionFactory.openSession();
        List<User> users=session.selectList("getUsers");
        return users;
    }

    @Override
    public void insertUser(User user) throws Exception {
        SqlSession session=sessionFactory.openSession();
         session.insert("insertUser",user);
        session.commit();
        session.close();
    }

    @Override
    public void updateUser(User user) throws Exception {
        SqlSession session=sessionFactory.openSession();
        session.update("updateUser",user);
        session.commit();
        session.close();
    }

    @Override
    public void deleteUser(int id) throws Exception {
        SqlSession session=sessionFactory.openSession();
        session.delete("deleteUser",id);
        session.commit();
        session.close();
    }

}

5.UserTest.java

package com.ask.test;


import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
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 org.junit.Before;
import org.junit.Test;

import com.ask.dao.UserDao;
import com.ask.dao.impl.UserDaoImpl;
import com.ask.pojo.User;

public class UserTest1 {
    private SqlSessionFactory sessionFactory;
    @Before
    public void up() throws IOException{
        InputStream is=Resources.getResourceAsStream("SQLMapConfig.xml");
        sessionFactory=new SqlSessionFactoryBuilder().build(is);
    }
    
    @Test
    public void testGetUserById() throws Exception {
        UserDao dao=new UserDaoImpl(sessionFactory);
        User user=dao.getUserById(1);
        System.out.println(user);
    }
    
    @Test
    public void testGetUserByName() throws Exception {
        UserDao dao=new UserDaoImpl(sessionFactory);
         List<User> users=dao.getUserByName("l");
        
        System.out.println(users.get(0));
    }
    @Test
    public void testGetUsers() throws Exception {
        UserDao dao=new UserDaoImpl(sessionFactory);
        List<User> users=dao.getUsers();
        for (User user : users) {
            System.out.println(user);
        }
    }
    @Test
    public void testInsertUser() throws Exception {
        UserDao dao=new UserDaoImpl(sessionFactory);
        User u=new User(3,"scott","tiger");
        dao.insertUser(u);
    }
    @Test
    public void testUpdateUser() throws Exception {
        UserDao dao=new UserDaoImpl(sessionFactory);
        User u=new User(3,"tiger","666666");
        u.setT_id(3);
        dao.updateUser(u);
    }
    @Test
    public void testDeleteUser() throws Exception {
        UserDao dao=new UserDaoImpl(sessionFactory);
        dao.deleteUser(3);
    }

}

6.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="mapper.UserMapper">
   <!-- 执行的sql语句的id
               根据id查询用户
   -->
   <select id="getUserById" parameterType="int" resultType="User">
       SELECT * FROM t_USER WHERE t_id=#{t_id}
   </select>
   <!--根据姓名模糊查询-->
   <select id="getUserByName" parameterType="String" resultType="com.ask.pojo.User">
         select * from t_user where t_name LIKE '%'||#{t_name}||'%'
    </select>
   <!--查询所有用户  -->
    <select id="getUsers" resultType="com.ask.pojo.User">
        SELECT * FROM t_USER
   </select>
   <!-- 用户增加 -->
   <insert id="insertUser" parameterType="com.ask.pojo.User">
      INSERT INTO t_user VALUES(#{t_id},#{t_name},#{t_password})
   </insert>
   <!--  用户修改-->
   <update id="updateUser" parameterType="com.ask.pojo.User">
   update t_user set t_name=#{t_name}, t_password=#{t_password} where t_id=#{t_id}
   </update>
   <!--用户删除-->
   <delete id="deleteUser" parameterType="int">
      delete from t_user where t_id=#{t_id}
   </delete>
 
 </mapper>

7.SQLMapConfig.xml

<?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>
<properties resource="db.properties"></properties>
<typeAliases>
    <package name="com.ask.pojo"/>
</typeAliases>
   <!-- 和spring整合后 environments配置将废除-->
   <environments default="development">
      <environment id="development">
      <!-- 使用jdbc事务管理-->
         <transactionManager type="JDBC" />
      <!-- 数据库连接池-->
         <dataSource type="POOLED">
            <property name="driver" value="${jdbc.driver}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
         </dataSource>
      </environment>
   </environments>
  <mappers>
      <mapper resource="mapper/UserMapper.xml"/>
      
      <package name="com.ask.mapper"/>
  </mappers>
</configuration>


0 0