IDEA构建一个mybatis项目

来源:互联网 发布:ps修复软件下载 编辑:程序博客网 时间:2024/05/17 13:43

目录结构如下:

 

在pom.xml中配置需要的jar包

  <dependencies>    <dependency>        <groupId>org.mybatis</groupId>        <artifactId>mybatis</artifactId>        <version>3.3.0</version>    </dependency>    <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>        <version>5.1.29</version>    </dependency>    <dependency>        <groupId>junit</groupId>        <artifactId>junit</artifactId>        <version>4.11</version>        <scope>test</scope>    </dependency>  <dependency>        <groupId>log4j</groupId>        <artifactId>log4j</artifactId>        <version>1.2.17</version>    </dependency>    <dependency>        <groupId>org.slf4j</groupId>        <artifactId>slf4j-api</artifactId>        <version>1.7.12</version>    </dependency>    <dependency>        <groupId>org.slf4j</groupId>        <artifactId>slf4j-log4j12</artifactId>        <version>1.7.12</version>    </dependency></dependencies>

接下来新建config.properties配置文件将JDBC连接所需参数配置进去

driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mybatisusername=rootpassword=123456

建一个model,Person.java

public class Person {    private int id;    private String userName ;    private int age ;    private String mobilePhone ;    public  Person(){}    public Person(int id,String userName, int age, String mobilePhone) {        this.id = id;        this.userName = userName;        this.age = age;        this.mobilePhone = mobilePhone;    }    public String getUserName() {        return userName;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public void setUserName(String userName) {        this.userName = userName;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String getMobilePhone() {        return mobilePhone;    }    public void setMobilePhone(String mobilePhone) {        this.mobilePhone = mobilePhone;    }    @Override    public String toString() {        return "Person{" +                "userName='" + userName + '\'' +                ", age=" + age +                ", mobilePhone='" + mobilePhone + '\'' +                '}';    }}


 

配置mybatis-config.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="config.properties"/>    <typeAliases>        <typeAlias type="model.Person" alias="Person"/>    </typeAliases>    <environments default="development">        <environment id="development">            <transactionManager type="JDBC"/>            <dataSource type="POOLED">                <property name="driver" value="${driver}"/>                <property name="url" value="${url}"/>                <property name="username" value="${username}"/>                <property name="password" value="${password}"/>            </dataSource>        </environment>    </environments>    <mappers>        <mapper resource="mapper/Person.xml"/>    </mappers></configuration>

配置日志打印log4j.properties

log4j.rootLogger=debug, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=firestorm.loglog4j.appender.R.MaxFileSize=100KBlog4j.appender.R.MaxBackupIndex=1log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%p %t %c - %m%nlog4j.logger.com.codefutures=DEBUG

 

配置mapper包下的Person.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">    <insert id="insertPerson" parameterType="Person" >   INSERT INTO PERSON(ID,USERNAME,AGE,MOBILEPHONE)VALUES (#{id},#{userName},#{age},#{mobilePhone})    </insert>    <select id="queryById" parameterType="int" resultType="Person">        SELECT * FROM PERSON WHERE ID=#{id}    </select>    <update id="updatePerson">        UPDATE PERSON SET USERNAME=#{userName},AGE=#{age},MOBILEPHONE=#{mobilePhone} WHERE ID=#{id}    </update></mapper>

写一个工具类来获取SqlSessionFactory和SqlSession

public class MybatisUtil {    private final  static SqlSessionFactory sqlSessionFactory;    static {        String resource="mybatis-config.xml";        Reader reader =null;        try {            reader = Resources.getResourceAsReader(resource);        } catch (IOException e) {            e.printStackTrace();        }        sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);        }    /**     * 获取SqlSessionFactory     * @return SqlSessionFactory     */    public static SqlSessionFactory getSqlSessionFactory(){        return sqlSessionFactory;    }    /**     * 获取SqlSession     * @return SqlSession     */    public static SqlSession getSqlSession(){        return sqlSessionFactory.openSession();    }    /**     * 关闭SqlSession     */    public  static void closeSession(SqlSession sqlSession){        if (sqlSession!=null)            sqlSession.close();    }    }

最后测试

public class UserTest {    SqlSession sqlSession ;    @Test    public void insertPerson(){        sqlSession = MybatisUtil.getSqlSession();        int id = 10000;        String userName = "test";        int age = 18;        String mobilePhone = "18000000000";        Person person = new Person();        person.setId(id);        person.setAge(age);        person.setUserName(userName);        person.setMobilePhone(mobilePhone);        try{            sqlSession.insert("insertPerson",person);            sqlSession.commit();        }catch (Exception e){            e.printStackTrace();        }finally {            MybatisUtil.closeSession(sqlSession);        }    }    @Test    public void queryById(){        sqlSession = MybatisUtil.getSqlSession();        int id = 1;        try{            Person person = sqlSession.selectOne("queryById",id);            sqlSession.commit();            System.out.println(person.getUserName());        }catch (Exception e){            e.printStackTrace();        }finally {            MybatisUtil.closeSession(sqlSession);        }    }}

最后测试,成功插入到数据库中

 

原创粉丝点击