第一步:
第二步:
1.通过外部配置文件做mybatis的基础性的配置。
1)先在src目录下编写config.properties的文件(做一些动态的配置)。
配置的内容如下:
jdbc.jdbcUrl=jdbc:oracle:thin:@127.0.0.1:1521:orcl
jdbc.driverClass=oracle.jdbc.driver.OracleDriver
jdbc.user=ErpSystem
jdbc.password=123
2)在src目录下编写mybatis-config.xml文件,引入config.properties文件。
<?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"><!—引入外部的配置文件-->
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.jdbcUrl}"/>
<property name="url" value="${jdbc.driverClass}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/gxa/bj/model/UserInfoMapper.xml"/>
</mappers>
</configuration>
3)在modle层创建数据库对应的实例对象
例:userInfo
public class UserInfo {
private Integer userId;//用户编号
private String userName;//用户姓名
private String userPwd;//用户密码
private String flag;//标示
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
}
4)在daoimp层定义一个接口IUser
内容如下:增删改查方法
public int getInsert(T t) ;
public List<T> getSelect(T t) ;
public T getModel(Object obj) ;
public int getUpdate(T t) ;
public int getDelete(Object obj) ;
public List<UserInfo> getUsers(String userName);
}
6)在modle层编写一个映射文件userInfoMapper.xml
一个modle对象,就对应一个Mapper.xml
userInfoMapper.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.gxa.bj.dao.UserMapper">
<insert id="getInsert" parameterType="com.gxa.bj.modle.UserInfo">
insert into UserInfo(userid,username,userpwd,flag)
values(usernext.nextval,#{userName},#{userPwd},#{flag})
</insert>
<delete id="getDelete">
delete from UserInfo where userId=#{userId}
</delete>
<update id="getUpdate" parameterType="com.gxa.bj.modle.UserInfo">
update UserInfo set username=#{userName},userpwd=#{userPwd},flag=#{flag} Where userid=#{userId}
</update>
<select id="getModel" resultType="com.gxa.bj.modle.UserInfo">
select * From UserInfo Where userid=#{id}
</select>
<select id="getUsers" parameterType="java.lang.String" resultSets="com.gxa.bj.modle.UserInfo" resultType="com.gxa.bj.modle.UserInfo">
select * From UserInfo Where userName like '%${value}%'
</select>
</mapper>
(id里面的名字,一定对应接口方法名,parameterTyoe是参数类型,resultType是返回的类型)resultSets返回集合类型
7)在TestUI里测试,内容如下:
public class TestUi {
public static void main(String[] args) {
String resource = "mybatis-config.xml";
InputStream inputStream=null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
//UserMapper userinfomapper=sqlSession.getMapper(UserMapper.class);
/*
UserInfo u2=new UserInfo();
u2.setUserId(5);
if(userinfomapper.getDelete(u2)>0){
sqlSession.commit();
System.out.println("删除成功");
}else{
sqlSession.rollback();
System.out.println("删除失败");
}
UserInfo u=new UserInfo();
u.setUserName("wudi");
u.setUserPwd("123");
u.setFlag("管理员");
if(userinfomapper.getInsert(u)>0){
sqlSession.commit();
System.out.println("添加成功");
}else{
sqlSession.rollback();
System.out.println("添加失败");
}
Integer userId=2;
UserInfo user=userinfomapper.getModel(userId);
System.out.println("查询到的用户名为:"+user.getUserName());
String userName="zhang";
List<UserInfo> u4=userinfomapper.getUsers(userName);
for(UserInfo us:u4){
System.out.println("查询到的用户权限id为:"+us.getUserId());
UserInfo u3=new UserInfo();
u3.setUserId(2);
u3.setUserName("zhangsan");
u3.setUserPwd("555");
u3.setFlag("超级管理员");
if(userinfomapper.getUpdate(u3)>0){
sqlSession.commit();
System.out.println("修改成功");
}else{
sqlSession.rollback();
System.out.println("修改失败");
}