IDEA构建一个mybatis项目
转自:http://www.cnblogs.com/ciscoo/p/6259138.html
目录结构如下:
在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.Driver url=jdbc:mysql://localhost:3306/mybatis username=root password=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"/> <!--注意此对象一定要从包的根部写起 model.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, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=firestorm.log log4j.appender.R.MaxFileSize=100KB log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n log4j.logger.com.codefutures=DEBUG
配置mapper
<?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); } } }
最后测试,成功插入到数据库中