上一次利用mybatis generator工具生成mybatis基础配置代码和目录结构,在此基础上写一个helloworld。
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>
<settings>
<!-- changes from the defaults for testing -->
<setting name="cacheEnabled" value="false" />
<setting name="useGeneratedKeys" value="true" />
<setting name="defaultExecutorType" value="REUSE" />
</settings>
<typeAliases>
<typeAlias alias="TbUser" type="org.liyb.mybatis.model.TbUser"/>
</typeAliases>
<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/springstud"/>
<property name="username" value="mysql"/>
<property name="password" value="mysql"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/liyb/mybatis/dao/TbUserMapper.xml" />
</mappers>
</configuration>
TbUserMapper.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="org.liyb.mybatis.dao.TbUserMapper" >
<resultMap id="BaseResultMap" type="org.liyb.mybatis.model.TbUser" >
<id column="uname" property="uname" jdbcType="VARCHAR" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="phone" property="phone" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
</resultMap>
<!-- 20160523 增添用户-->
<insert id="insertUser" parameterType="org.liyb.mybatis.model.TbUser" >
insert into tb_user (uname, name, phone, password)
values
(#{uname,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR})
</insert>
</mapper>
测试代码
package test.mybatis;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
*通过MyBatis操作数据库用到的是一个叫SqlSession的类,
*
*这个类是通过SqlSessionFactory产生的,一般建议在全局维护一个SqlSessionFactory就可以了。
*/
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) {
System.out.println(e.getMessage());
}
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}
public static SqlSessionFactory getSqlsessionfactory() {
return sqlSessionFactory;
}
}
package test.mybatis;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.liyb.mybatis.dao.TbUserMapper;
import org.liyb.mybatis.model.TbUser;
public class TestMyBatis {
public static SqlSessionFactory sqlSessionFactory = null;
static{
sqlSessionFactory = MyBatisUtil.getSqlsessionfactory();
}
public static void testAdd() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
TbUserMapper userMapper = sqlSession.getMapper(TbUserMapper.class);
TbUser user = new TbUser("liybk", "liyb","186××××","123");
userMapper.insertUser(user);
sqlSession.commit();// 这里一定要提交,不然数据进不去数据库中
} finally {
sqlSession.close();
}
}
public static void main(String[] args){
TestMyBatis.testAdd();
}
}
工程目录结构: