• 个人学习笔记MyBatis的搭建及第一个程序


    1、导入Jar包

    2、设置全局配置文件

    <?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>  
        <typeAliases>  
            <!--给实体类起一个别名 user -->  
            <typeAlias type="cn.sky.bookshop.beans.User" alias="User" />  
        </typeAliases>  
        <!--数据源配置  这块用 mysql数据库 -->  
        <environments default="development">  
            <environment id="development">  
                <transactionManager type="jdbc" />  
                <dataSource type="POOLED">  
                    <property name="driver" value="com.mysql.jdbc.Driver" />  
                    <property name="url" value="jdbc:mysql://localhost:3306/ibatis" />  
                    <property name="username" value="root" />  
                    <property name="password" value="215890" />  
                </dataSource>  
            </environment>  
        </environments>  
        <mappers>  
            <!--userMapper.xml装载进来  同等于把“dao”的实现装载进来 --> 
            <mapper resource="User.xml" />   
            <mapper resource="UserMapper.xml" />  
        </mappers>  
    </configuration>  

    3、编写Javabean

    package cn.sky.bookshop.beans;
    
    public class User {
        private int id;
        private String userName;
        private String password;
        private String email;
        
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
    
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        @Override
        public String toString() {
    	return "User [email=" + email + ", id=" + id + ", password=" + password
    		+ ", username=" + userName + "]";
        }
    }

    4、配置映射文件、

    <?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="test">
    	<!-- 添加记录   parameterType传入参数类型-->
    	<insert id="insertUser" parameterType="User">
    		insert into
    		t_user(id,username,password,email)values(#{id},#{userName},#{password},#{email});
    	</insert>
    	<!-- resultType返回参数类型 -->
    	<select id="findUserByName" parameterType="string" resultType="User">
    		select * from t_user where username=#{userName};
    	</select>
    
    	<delete id="deleteUserById" parameterType="int">
    		delete from t_user
    		where id=#{id};
    	</delete>
    
    	<update id="updateUser" parameterType="User">
    		update t_user set
    		username=#{userName},password=#{password},email=#{email} where
    		id=#{id};
    	</update>
    
    </mapper>

    5、dao接口

    package cn.sky.bookshop.dao;
    
    import cn.sky.bookshop.beans.User;
    
    public interface UserDao {
        
        public User findUserByName(String username);
        
        public void insertUser(User user);
        
        public void deleteUserById(int id);
        
        public void updateUser(User user);
    }
    

    6、dao实现

    package cn.sky.bookshop.dao;
    
    import org.apache.ibatis.session.SqlSession;
    
    import cn.sky.bookshop.beans.User;
    import cn.sky.bookshop.utils.MyBatisUtil;
    
    public class UserDaoImpl implements UserDao {
        //查找
        public User findUserByName(String username) {
            SqlSession sqlSession = MyBatisUtil.getSqlSession();  
           	User user = sqlSession.selectOne("test.findUserByName",username);
            sqlSession.close();
    	return user;
        }
        //插入
        public void insertUser(User user) {
            SqlSession sqlSession = MyBatisUtil.getSqlSession();  
           	sqlSession.insert("test.insertUser", user);
            sqlSession.commit();
            sqlSession.close();
        }
        //删除
        public void deleteUserById(int id){
            SqlSession sqlSession = MyBatisUtil.getSqlSession();  
           	sqlSession.delete("test.deleteUserById", id);
            sqlSession.commit();
            sqlSession.close();
        }
        //更新
        public void updateUser(User user){
            SqlSession sqlSession = MyBatisUtil.getSqlSession();  
           	sqlSession.update("test.updateUser", user);
            sqlSession.commit();
            sqlSession.close();
        }
    }
    

    7、前面还少了个工具类....MyBatisUtil

    package cn.sky.bookshop.utils;
    
    import java.io.IOException;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    
    public final class MyBatisUtil {
        
        private static SqlSessionFactory sessionFactory;
        private static String resource = "configuration.xml";  
        
        static{
            try {  
                sessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resource));
    //            sessionFactory.getConfiguration().addMapper(UserDao.class);
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }
      
        public static SqlSession getSqlSession(){
    	return sessionFactory.openSession();
        }
    }
    
    8、Dao测试类

    package cn.sky.bookshop.test;
    
    import cn.sky.bookshop.beans.User;
    import cn.sky.bookshop.dao.UserDao;
    import cn.sky.bookshop.dao.UserDaoImpl;
    
    public class UserDaoImplTest {
    
        public static UserDao userDao = new UserDaoImpl();
        
        public static void main(String[] args) {
    //	addUser();
    //	findUser();
    //	deleteUser();
    	updateUser();
        }
        
        public static void addUser(){
    	User user = new User();
    	user.setUserName("李四");
    	user.setPassword("zhangsanw2");
    	user.setEmail("zserw@qq.com2");
    	userDao.insertUser(user);
        }
        
        public static void findUser(){
    	User user = userDao.findUserByName("李四");
    	System.out.println(user);
        }
        
        public static void deleteUser(){
    	userDao.deleteUserById(3);
        }
        
        public static void updateUser(){
    	User user = new User();
    	user.setId(2);
    	user.setUserName("小吴");
    	user.setPassword("xiaowu");
    	user.setEmail("abc@qq.com2");
    	userDao.updateUser(user);
        }
    
    }
    


  • 相关阅读:
    paip. everything exe 文件不能启动的解决
    paip.输入法编程词频顺序order by py
    paip.最新的c++ qt5.1.1环境搭建跟hello world
    paip.mysql 5.6 数据库 占用 内存 过多 的 解决方案
    paip.win32的internet扩展已停止工作解决大法
    paip.输入法编程删除双字词简拼
    paip.输入法编程词频调整单字优先编码发音一致优先的问题跟调整
    paip.输入法编程带ord gudin去重复
    paip.php eclipse output echo 乱码
    paip.svn使用最佳实践
  • 原文地址:https://www.cnblogs.com/37sky/p/5055553.html
Copyright © 2020-2023  润新知