zoukankan      html  css  js  c++  java
  • mybatis(2)操作数据库

    利用mybatis实现简单的增删改查,一些重点的地方

    UserDaoImpl.java

    package com.dao.Impl;
    
    import java.util.List;
    
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    
    import com.dao.UserDao;
    import com.pojo.User;
    
    public class UserDaoImpl implements UserDao {
        // 用它获取SQLSession对象(相当于connection)
        private SqlSessionFactory sqlSessionFactory;
        public UserDaoImpl(SqlSessionFactory sqlSessionFactory) {
            super();
            this.sqlSessionFactory = sqlSessionFactory;
        }
        
    //插入,更新,删除都要提交事务    
    
        @Override
        public int saveUser(User user) {
            // TODO Auto-generated method stub
            SqlSession session=sqlSessionFactory.openSession();
            int result=-1;
            try {
                //第一个参数是名称空间.id
                result=session.insert("com.pojo.User.saveUser",user);
                session.commit();
            } finally {
                // TODO: handle finally clause
                session.close();
            }
            return result;
        }
    
        @Override
        public int deleteUserById(Integer id) {
            // TODO Auto-generated method stub
            SqlSession session=sqlSessionFactory.openSession();
            int result=-1;
            try {
                //第一个参数是名称空间.id
                result=session.delete("com.pojo.User.deleteUserById",id);
                session.commit();
            } finally {
                // TODO: handle finally clause
                session.close();
                
            }
            return result;
        }
        
    
        @Override
        public int update(User user) {
            // TODO Auto-generated method stub
            SqlSession session=sqlSessionFactory.openSession();
            int result=-1;
            try {
                //第一个参数是名称空间.id
                result=session.delete("com.pojo.User.updateUser",user);
                session.commit();
            } finally {
                // TODO: handle finally clause
                session.close();
            }
            return result;
        }
    
        @Override
        //
        public User queryUserById(Integer id) {
            // TODO Auto-generated method stub
            
            SqlSession session=sqlSessionFactory.openSession();
            
            try {
                //第一个参数是名称空间.id
                return session.selectOne("com.pojo.User.queryUserById",id);
            } finally {
                // TODO: handle finally clause
                session.close();
            }
            
        }
    
        @Override
        public List<User> queryUsers() {
            // TODO Auto-generated method stub
    SqlSession session=sqlSessionFactory.openSession();
            
            try {
                //第一个参数是名称空间.id
                return session.selectList("com.pojo.User.queryUsers");
            } finally {
                // TODO: handle finally clause
                session.close();
            }
            
        }
    
    }

    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="com.pojo.User">
    
    <!--     public int saveUser(User user);
            insert标签配置insert语句
                id属性配置唯一的标识
                parameterType 设置方法的参数类型(可以省略,一般如果是JavaBean,不推荐省略)
                useGeneratedKeys="true" 表示使用数据库生所的主键
                keyProperty="id" 属性设置将数据库中返回的自增id值交给哪个属性
     -->
        <insert id="saveUser" parameterType="com.pojo.User">
            <!-- 
                order属性设置selectKey里配置的sql语句的执行顺序
                    AFTER        在insert语句之后执行
                    BEFORE        在insert语句之前执行
                    keyProperty="id" 属性设置将数据库中返回的自增id值交给哪个属性
                    resultType="int" 属性表示查询之后返回的类型
                    int    表示Integer类型
             -->
            <selectKey order="AFTER" keyProperty="id" resultType="int">
                select last_insert_id()
            </selectKey>
            insert into t_user(`last_name`,`sex`) values(#{lastName},#{sex})
        </insert>
    <!--     public int deleteUserById(Integer id); -->
        <delete id="deleteUserById">
            delete from t_user where id = #{id}
        </delete>
    <!--     public int updateUser(User user); -->
        <update id="update" parameterType="com.pojo.User">
            update t_user set last_name=#{lastName},sex=#{sex} where id = #{id}
        </update>
    <!--     
            select 标签配置select查询语句
                id 属性给当前的sql语句配置一个唯一标识
                resultType 属性设置查询结果每行记录对应生成的JavaBean的全类名
                parameterType 设置方法的参数类型(可以省略)
     -->
        <select id="queryUserById" parameterType="int" resultType="com.pojo.User">
            select id,last_name lastName,sex from t_user where id = #{id}
        </select>
    <!--     public List<User> queryUsers(); -->
        <select id="queryUsers" resultType="com.pojo.User">
            select id,last_name lastName,sex from t_user
        </select>
    
    </mapper>
  • 相关阅读:
    修改sql表操作大全
    Asp.NET自定义DataGrid控件
    jQuery LigerUI 插件介绍及使用之ligerGrid
    jQuery LigerUI API预览版发布
    jQuery LigerUI 初次发布&一睹为快(提供Demo下载)
    jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable
    nginx 日志
    nginx 正向代理
    排序
    nginx 静态资源优化
  • 原文地址:https://www.cnblogs.com/ywqtro/p/12242661.html
Copyright © 2011-2022 走看看