Mybatis框架
Mybatis框架开发环境搭建
创建全局配置文件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>
<environments default="development">
<!-- 环境 default:指定采用哪个环境 -->
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<!-- 连接时的具体事务管理类型,JDBC类型的事务管理器 -->
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/Usermapper.xml" />
</mappers>
</configuration>
创建对象关系映射用接口类UserMapper.java
package com.abc;
public interface UserMapper {
public List<User> selectAll();
public User selectUserByName(String username);
public int insertOne(User user);
public int updateOne(User user);
public int deleteOne(String username);
}
简单Java域模型对象User
package com.abc;
public class User {
private int id;
private String username;
private String password;
private String realname;
private String phone;
private String address;
public int getId() {
return id;
}
public void setId(int i) {
this.id = i;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRealname() {
return realname;
}
public void setRealname(String realname) {
this.realname = realname;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + ", realname=" + realname
+ ", phone=" + phone + ", address=" + address + "]";
}
}
创建对象关系映射接口UserMapper.java用配置文件UserMapper.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.abc.dao.UserMapper">
<select id="selectAll" resultType="com.abc.po.User">select * from user </select>
<select id="selectUserByName" parameterType="String" resultType="com.abc.po.User">select * from user where username = #{username}</select>
<insert id="insertOne" parameterType="com.abc.po.User">insert into user values(#{id},#{username},#{password},#{realname},#{phone},#{address})</insert>
<update id="updateOne" parameterType="com.abc.po.User">UPDATE user SET address=#{address} WHERE username= #{username};</update>
<delete id="deleteOne" parameterType="String">DELETE FROM user WHERE username=#{username};</delete>
</mapper>
Mybatis框架入门案例
查询单条记录
1)在UserMapper接口下创建相应的方法
public User selectUserByName(String username);
2)在UserMapper接口对应的XML中创建同名的select元素
<select id="selectUserByName" parameterType="String" resultType="com.abc.po.User">
select * from user where username = #{username}
</select>
3)测试用入口方法
package com.abc;
import java.io.IOException;
import java.io.InputStream;
//import java.util.HashMap;
//import java.util.Map;
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 com.abc.dao.UserMapper;
import com.abc.po.User;
public class UserselectByname {
public static void main(String[] args) {
String resource="myconfig.xml";
InputStream inputStream;
try {
System.out.println("测试开始........");
//通过指定位置的配置文件获取一个输入流对象
inputStream = Resources.getResourceAsStream(resource);
//使用上文中获取的InputStream对象创建Mybatis的会话工厂对象
SqlSessionFactory factory=
new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂对象获取Mybatis的会话对象SqlSession
SqlSession se=factory.openSession();
//利用会话对象获取具体的Mapper映射对象
UserMapper mapper=se.getMapper(UserMapper.class);
User u= mapper.selectUserByName("飞轮海");
System.out.println(u);
//关闭会话
se.close();
System.out.println("测试结束........");
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
查询多条记录
1)在UserMapper接口下创建相应的方法
public List<User> selectAll();
2)在UserMapper接口对应的XML中创建同名的select元素
<select id="selectAll" resultType="com.abc.po.User">
select * from user
</select>
3)测试用入口方法
public class Userinsert {
public static void main(String[] args) {
//TODO Auto-generated method stud
String resource="myconfig.xml";
InputStream inputStream;
try {
System.out.println("测试开始........");
//通过指定位置的配置文件获取一个输入流对象
inputStream = Resources.getResourceAsStream(resource);
//使用上文中获取的InputStream对象创建Mybatis的会话工厂对象
SqlSessionFactory factory=
new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂对象获取Mybatis的会话对象SqlSession
SqlSession se=factory.openSession();
//利用会话对象获取具体的Mapper映射对象
UserMapper mapper=se.getMapper(UserMapper.class);
User u =new User();
u.setUsername("六月天");
u.setPassword("12345");
u.setRealname("张八");
u.setPhone("1562010876597");
u.setAddress("软件园十号楼");
mapper.insertOne(u);
se.commit();
se.close();
System.out.println("结束........");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
添加单条记录
1)在UserMapper接口下创建相应的方法`
public int insertOne(User user);
2)在UserMapper接口对应的XML中创建同名的元素
<insert id="insertOne" parameterType="com.abc.po.User">
insert into user
values(#{id},#{username},#{password},#{realname},#{phone},#{address})
</insert>
3)测试用入口方法
public class Userinsert {
public static void main(String[] args) {
//TODO Auto-generated method stud
String resource="myconfig.xml";
InputStream inputStream;
try {
System.out.println("测试开始........");
//通过指定位置的配置文件获取一个输入流对象
inputStream = Resources.getResourceAsStream(resource);
//使用上文中获取的InputStream对象创建Mybatis的会话工厂对象
SqlSessionFactory factory=
new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂对象获取Mybatis的会话对象SqlSession
SqlSession se=factory.openSession();
//利用会话对象获取具体的Mapper映射对象
UserMapper mapper=se.getMapper(UserMapper.class);
User u =new User();
u.setUsername("六月天");
u.setPassword("12345");
u.setRealname("张八");
u.setPhone("1562010876597");
u.setAddress("软件园十号楼");
mapper.insertOne(u);
se.commit();
se.close();
System.out.println("结束........");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
修改单条记录
1)在UserMapper接口下创建相应的方法
public int updateOne(User user);
2)在UserMapper接口对应的XML中创建同名的元素
<update id="updateOne" parameterType="com.abc.po.User">
UPDATE user SET address=#{address} WHERE username= #{username};
</update>
3)测试用入口方法
package com.abc;
import java.io.IOException;
import java.io.InputStream;
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 com.abc.dao.UserMapper;
import com.abc.po.User;
public class Userupdate {
public static void main(String[] args) {
//TODO Auto-generated method stud
String resource="myconfig.xml";
InputStream inputStream;
try {
System.out.println("测试开始........");
//通过指定位置的配置文件获取一个输入流对象
inputStream = Resources.getResourceAsStream(resource);
//使用上文中获取的InputStream对象创建Mybatis的会话工厂对象
SqlSessionFactory factory=
new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂对象获取Mybatis的会话对象SqlSession
SqlSession se=factory.openSession();
//利用会话对象获取具体的Mapper映射对象
UserMapper mapper=se.getMapper(UserMapper.class);
User u =new User();
u.setUsername("凤凰传奇");
u.setAddress("软件园八号楼");
mapper.updateOne(u);
se.commit();
se.close();
System.out.println("结束........");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
删除单条记录
1)在UserMapper接口下创建相应的方法
public int deleteOne(String username);
2)在UserMapper接口对应的XML中创建同名的元素
<delete id="deleteOne" parameterType="String">
DELETE FROM user WHERE username=#{username};
</delete>
3)测试用入口方法
package com.abc;
import java.io.IOException;
import java.io.InputStream;
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 com.abc.dao.UserMapper;
public class Userdelete {
public static void main(String[] args) {
//TODO Auto-generated method stud
String resource="myconfig.xml";
InputStream inputStream;
try {
System.out.println("测试开始........");
//通过指定位置的配置文件获取一个输入流对象
inputStream = Resources.getResourceAsStream(resource);
//使用上文中获取的InputStream对象创建Mybatis的会话工厂对象
SqlSessionFactory factory=
new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂对象获取Mybatis的会话对象SqlSession
SqlSession se=factory.openSession();
//利用会话对象获取具体的Mapper映射对象
UserMapper mapper=se.getMapper(UserMapper.class);
mapper.deleteOne("六月天");
se.commit();
se.close();
System.out.println("结束........");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}