什么是 MyBatis?
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
下面我们来使用MyBatis框架实现简单的数据表的增删改查功能
首先编写数据库表所对应的Javabean,注意Javabean里面的值要与数据库表里面的字段相对应
public class User {
public int id;
public String name;
public String clas;
public String phone;
public String wedurl;
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 String getClas() {
return clas;
}
public void setClas(String clas) {
this.clas = clas;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getWedurl() {
return wedurl;
}
public void setWedurl(String wedurl) {
this.wedurl = wedurl;
}
}
第二步开始编写实现数据库操作接口
package com.zhiyuan.com;
import java.util.List;
public interface IUser {
//增加
public int Insert(User ure);
//删除
public int Delete(int id);
//根据id进行条件查询
public User Where(int id);
//查询整张表
public List<User> Select();
//修改数据表里面的数据
public int Update(User user);
}
第三步编写XML配置文件(在这里面编写数据操作的SQL语句,注意每一条数据库操做的id必须与接口里面的方法名相对应)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<!-- 注意这里面namespace的值要填写接口所对应的路径 -->
<mapper namespace="com.zhiyuan.com.IUser">
<insert id="Insert" parameterType="User">
INSERT INTO user
(id,name,clas,phone,wedurl)VALUES(#{id},#{name},#{clas},#{phone},#{wedurl})
</insert>
<delete id="Delete" parameterType="int">
DELETE FROM user WHERE id=#{id}
</delete>
<select id="Where" parameterType="User" resultType="com.zhiyuan.com.User">
SELECT * FROM user WHERE id=#{id};
</select>
<select id="Select" resultType="com.zhiyuan.com.User">
SELECT * FROM user
</select>
<update id="Update" parameterType="User">
UPDATE USER
SET
name=
#{name},
clas = #{clas},
wedurl = #{wedurl},
phone = #{phone}
WHERE
id =
#{id}
</update>
</mapper>
第三步编写主配置xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD config 3.0//EN" "mybatis-3-config.dtd" >
<configuration>
<typeAliases>
<typeAlias type="com.zhiyuan.com.User" alias="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://127.0.0.1:3306/loop" />
<property name="password" value=" " />
<property name="username" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/zhiyuan/com/User.xml" />
</mappers>
</configuration>
第四步编写测试类
public class Mapping {
public static SqlSessionFactory sty;
public static void main(String[] args) throws IOException {
// 读取xml配置文件
Reader re = Resources.getResourceAsReader("config.xml");
// 得到SqlSessionFactory工厂对象
sty = new SqlSessionFactoryBuilder().build(re);
// 得到sqlsession对象
SqlSession op = sty.openSession();
// 使用sqlsession对象变相实例化IUser接口
IUser oop = op.getMapper(IUser.class);
Update(oop);
op.commit();
}
// 增加
public static void insert(IUser i) {
User user = new User();
user.setId(8);
user.setName("不将就");
user.setPhone("1743578");
user.setClas("往事随风");
user.setWedurl("www.yishiwuzhong.com");
i.Insert(user);
}
// 删除
public static void Delete(IUser i) {
int id = 5;
i.Delete(id);
}
// 条件查询
public static void Where(IUser i) {
int id = 8;
User user = i.Where(id);
System.out.println(user.id);
}
// 查询整张表
public static void Select(IUser i) {
System.out.println("Test Get start.....");
prinuser(i.Select());
System.out.println("Test Get finished.....");
}
// 输出整张表数据
public static void prinuser(final List<User> i) {
int p = 0;
for (User io : i) {
p++;
System.out.println("==========第" + p + "条记录==========");
System.out.println(io.id);
}
}
// 修改数据表
public static void Update(IUser i) {
int id = 8;
// 执行修改
User user = i.Where(id);
user.setName("青春有你");
user.setClas("无怨无悔");
i.Update(user);
}
}