发现网上给的mybatis的例子有的配置完了但是也是不成功的。所以特意写了本文,帮助mybatis入门.
iBatis更名为MyBatis,作出了些修改.如以前使用SqlMapClient进行数据库操作,现在使用SqlSession
首先是数据库结构,直接上图:数据库的名称:test,表名:User,表结构如下:
需要导入mybatis-3.2.1.jar和mysql-connector-java-5.1.23-bin.jar 这个两个jar包
项目结构如图:
以上已经完成了mybatis所有的环境,现在演示开始使用mybatis访问数据库。
1.现在开始配置mybatis, 配置文件在根目录即可,为mybatis.cfg.xml,其实这个名字大家可以随意取得。我的数据库是mysql,用户名为root,密码password为lee
<?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>
<typeAliases>
<typeAlias alias="User" type="domain.User" />
</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/test?useUnicode=true&characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="lee" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="maps/User.xml" />
</mappers>
</configuration>
2.编写User类即User.java
package domain;
public class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User() {}
public User(String name) {
this(0, name);
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "ID: " + id + ", Name: " + name;
}
}
3.User.xml映射文件,就是在这个文件里面进行sql语句的操作。
<?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="User">
<select id="selectUser" parameterType="int" resultType="User">
<![CDATA[select * from user where id = #{id}]]>
</select>
</mapper>
4 现在用一个test类即test.java 来实现对数据库的测试 输出id为3的用户
package test;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import domain.User;
public class Test {
public static void main(String[] args) throws IOException {
String resource = "mybatis.cfg.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = ssf.openSession();
try {
User user = (User) session.selectOne("selectUser", "3");
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
}
}
然后在test.java上运行,看到结果:
至此mybatis实验成功。。。。