mybatis入门(二)——mybatis开发项目五部曲

来源:互联网 发布:js浏览器后退刷新页面 编辑:程序博客网 时间:2024/05/22 14:57

工程结构如下:
这里写图片描述


一:配置mybatis环境
1.java jdk
2.eclipse
3.mysql
3.mybatis的jar包(依赖包lib文件夹下,核心jar要引入项目)


二:创建po类(简单User对象)

package cn.itcast.mybatis.po;import java.util.Date;/** *  * @author cyl * */public class User {    //属性名和数据库表的字段对应        private int id;        private String username;// 用户姓名        private String sex;// 性别        private Date birthday;// 生日        private String address;// 地址        public int getId() {            return id;        }        public void setId(int id) {            this.id = id;        }        public String getUsername() {            return username;        }        public void setUsername(String username) {            this.username = username;        }        public String getSex() {            return sex;        }        public void setSex(String sex) {            this.sex = sex;        }        public Date getBirthday() {            return birthday;        }        public void setBirthday(Date birthday) {            this.birthday = birthday;        }        public String getAddress() {            return address;        }        public void setAddress(String address) {            this.address = address;        }}

三:创建mapper文件(User.xml)

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- mapper代码,namespace有特殊的意义 --><mapper namespace="test"> <!--根据id查询用户-->   <select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">     SELECT * FROM user WHERE id=#{value}   </select>  <!--模糊查询-->  <select id="findUserByName" parameterType="java.lang.String" resultType="cn.itcast.mybatis.po.User">    select * from user where username  like '%${value}%'  </select>  <!-- 添加数据 -->  <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">  <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">   select LAST_INSERT_ID()  </selectKey>    insert into user(username,birthday,sex,address)value(#{username},#{birthday},#{sex},#{address})  </insert> <!-- 删除数据 -->  <delete id="deleteUser" parameterType="java.lang.Integer">      delete from user where id=#{id}  </delete>  <!-- 更新数据 -->  <update id="updateUser" parameterType="cn.itcast.mybatis.po.User">   update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}  </update></mapper>

四:配置mybatis核心配置文件:SqlMapConfig.xml,并加载mapper文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>    <!-- 加载属性文件 -->    <properties resource="db.properties">        <!--properties中还可以配置一些属性名和属性值  -->        <!-- <property name="jdbc.driver" value=""/> -->    </properties>    <!-- 全局配置参数,需要时再设置 -->    <!-- <settings>    </settings> -->    <!-- 别名定义 -->    <typeAliases>        <!-- 针对单个别名定义        type:类型的路径        alias:别名         -->        <!-- <typeAlias type="cn.itcast.mybatis.po.User" alias="user"/> -->        <!-- 批量别名定义         指定包名,mybatis自动扫描包中的po类,自动定义别名,别名就是类名(首字母大写或小写都可以)        -->        <package name="cn.itcast.mybatis.po"/>    </typeAliases>    <!-- 和spring整合后 environments配置将废除-->    <environments default="development">        <environment id="development">        <!-- 使用jdbc事务管理,事务控制由mybatis-->            <transactionManager type="JDBC" />        <!-- 数据库连接池,由mybatis管理-->            <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> </configuration>    <!-- 加载 映射文件 -->    <mappers>        <mapper resource="sqlmap/User.xml"/>        <!--通过resource方法一次加载一个映射文件 -->        <!-- <mapper resource="mapper/UserMapper.xml"/> -->         <!-- 通过mapper接口加载单个 映射文件        遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中        上边规范的前提是:使用的是mapper代理方法         -->        <!-- <mapper class="cn.itcast.mybatis.mapper.UserMapper"/> -->      </mappers>

五:程序执行

public class MybatisFirst {     /**     * 根据id查询user     */    @Test    public void findUserByIdTest() throws IOException{    String resource="SqlMapConfig.xml";    InputStream inputStream=Resources.getResourceAsStream(resource);        //创建会话工厂    SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);    SqlSession sqlSession=sqlSessionFactory.openSession();    //通过的sqlsession操作数据库    //第一个参数是映射文件中statement的id,等于namesapce+"."+statement的id    //第二个参数:输出参数    User user=sqlSession.selectOne("test.findUserById", 1);    System.out.println(user);    //释放资源;    sqlSession.close();    }     /**     * 模糊查询     */    @Test    public void findUserByName() throws IOException{        String resource="SqlMapConfig.xml";    InputStream inputStream=Resources.getResourceAsStream(resource);            //创建会话工厂        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);        SqlSession sqlSession=sqlSessionFactory.openSession();        //list中的user        List<User> user=sqlSession.selectList("test.findUserByName" ,"小明");        System.out.println(user);        sqlSession.close();    }     /**     * 添加用户     */    @Test    public void insertUserTest() throws IOException{        String resource="SqlMapConfig.xml";        InputStream inputStream=Resources.getResourceAsStream(resource);                //创建会话工厂        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);        SqlSession sqlSession=sqlSessionFactory.openSession();        User user=new User();        user.setUsername("chang");        user.setBirthday(new Date());        user.setSex("女");        user.setAddress("河南省");        sqlSession.insert("test.insertUser", user);        sqlSession.commit();        System.out.println(user.getId());        sqlSession.close();    }     /**     * 根据id更新user     */    @Test    public void updateUserTest() throws IOException{        String resource="SqlMapConfig.xml";        InputStream inputStream=Resources.getResourceAsStream(resource);    //创建会话工厂        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);        SqlSession sqlSession=sqlSessionFactory.openSession();        User user=new User();        user.setId(29);        user.setUsername("jin");        user.setBirthday(new Date());        user.setSex("女");        user.setAddress("河南省");        sqlSession.insert("test.updateUser", user);        sqlSession.commit();        sqlSession.close();    }}
原创粉丝点击