Mabatis接口之Mapper接口开发
2016-06-29 18:21
169 查看
Mybatis数据操作
1.通过外部配置文件做mybatis的基础性的配置。
1)先编写config.properties的文件(文件1建在src下)(做一些动态的配置)。
配置的内容如下:
jdbc.jdbcUrl=jdbc:oracle:thin:@127.0.0.1:1521:orcl
jdbc.driverClass=oracle.jdbc.driver.OracleDriver
jdbc.user=bbs
jdbc.password=123
2.在mybatis-config.xml(文件2建在src下)文件下引入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>
<propertiesresource="config.properties"><!—引入外部的配置文件-->
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc. driverClass }"/>
<property name="url" value="${jdbc. jdbcUrl }"/>
<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)做一个SQL映射文件:
2.Mapper接口代理的实现。
1)先定义一个接口(主要针对数据库表操作的接口)。比如:
package com.gxa.bj.dao;(文件3建在src下新建的包)
import java.util.List;
/**
* 针对数据库的数据的增删改查的功能做的接口
*@author ZY
*
*/
public interface IDaoBBS<T>{
/**
* 向数据库表里添加一条数据的方法
* @param t
* @throws SQLException
* @throws IllegalAccessException
* @throws IllegalArgumentException
*/
public int addItem(T t);
/**
* 从数据库表里删除一条数据的方法
* @param objId
*/
public int removeItem(Object objId);
/**
* 更新数据库表里的一条字段的方法
* @param t
*/
public int updateItem(T t);
/**
* 根据主键字段获取该条数据,并转换成实体对象
* @param objId
* @return
* @throws InvocationTargetException
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws SecurityException
* @throws NoSuchMethodException
*/
public T getModel(Object objId) ;
/**
* 根据查询条件获取多条数据,并转换成相应的集合
* @param objects
* @return
* @throws InvocationTargetException
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws SecurityException
* @throws NoSuchMethodException
*/
public List<T> getList(T t);
}
再针对该接口做一个针对UserInfo表的实现的接口:
package com.gxa.bj.dao.imp;(文件4建在src下新建的包)
import com.gxa.bj.dao.IDaoBBS;
import com.gxa.bj.model.UserInfo;
public interface UserMapperextends IDaoBBS<UserInfo> {
//模糊查询,查询到集合数据
public List<UserInfo> getUsers(String name);
}
2)在SQL的映射的xml文件里做如下配置
UserInfoMapper.xml(文件5建在src下新建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.imp.UserMapper">
<insert id="addItem"parameterType="com.gxa.bj.model.UserInfo">
insert intoUserInfo(userid,username,userpwd,useremail,useraddress,regreason)
values(usernext.nextval,#{userName},#{userPwd},#{userEmail},#{userAddress},#{regReason})
</insert>
<delete id="removeItem">
delete from UserInfo where userId=#{id}
</delete>
<update id="updateItem" parameterType="com.gxa.bj.model.UserInfo">
update UserInfo set userName=#{userName},userPwd=#{userPwd},userEmail=#{userEmail},userAddress=#{userAddress},regReason=#{regReason} where userId=#{userId}
</update>
<select id="getModel" resultType="com.gxa.bj.model.UserInfo">
select * from userinfo where userid=#{id}
</select>
<select id="getUsers" parameterType="String" resultType="com.gxa.bj.model.UserInfo">
select * from userinfo where userName like '%${value}%'
</select>
</mapper>
注意:namespace里是所针对的接口的名称(包括包名)。
接口里的方法全部定义为SQL语句的ID名。比如接口里有一个叫做addItem的方法,那么在SQL语句里就有一个id名为addItem的sql语句。
(文件6建在src下新建的包,包下面建实体对象类,例如userinfo用户类titleinfo,typeinfo,replyinfo)
com.gxa.bj.model
下面是项目基本包文件截图
下面是com.gxa.bj.model下的类
例如用户类
package com.gxa.bj.model;
public class UserInfo {
private Integer userId;//用户id
private String userName;//用户姓名
private String userPwd;//用户密码
private String userEmail;//用户邮箱
private String regReason;//注册原因
private String userAddress;//用户住址
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 getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
public String getRegReason() {
return regReason;
}
public void setRegReason(String regReason) {
this.regReason = regReason;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
}
测试方法事例
TestUI.java类
package com.gxa.bj.dao.imp;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
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.gxa.bj.model.UserInfo;
public class TestUI {
public static void main(String[] args){
TestUI t=new TestUI();
//增加
// UserInfo u=new UserInfo();
// u.setUserName("小米");
// u.setUserPwd("222");
// u.setUserEmail("123@qq.com");
// u.setUserAddress("成都");
// u.setRegReason("想加入");
// try {
// t.addUserInfo(u);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//删除
// try {
// t.deleteUserInfo(41);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//更新
// UserInfo u=new UserInfo();
// u.setUserId(42);
// u.setUserName("xiaoqiang");
// u.setUserPwd("1234");
// u.setUserEmail("ww@qq.com");
// u.setUserAddress("重庆");
// u.setRegReason("??");
// try {
// t.updateUserInfo(u);
//
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//根据id查询
// try {
// t.getModel(42);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
try {
t.getList("小");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void addUserInfo(UserInfo u) throws IOException{
String resource="mybatis-config.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
if(userMapper.addItem(u)>0){
sqlSession.commit();
System.out.println("添加成功");
}else{
sqlSession.rollback();
System.out.println("添加失败");
}
sqlSession.close();
}
public void deleteUserInfo(int id) throws IOException{
String resource="mybatis-config.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
if(userMapper.removeItem(id)>0){
sqlSession.commit();
System.out.println("删除成功");
}else{
sqlSession.rollback();
System.out.println("删除失败");
}
sqlSe
b655
ssion.close();
}
public void updateUserInfo(UserInfo u) throws IOException{
String resource="mybatis-config.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
if(userMapper.updateItem(u)>0){
sqlSession.commit();
System.out.println("更新成功");
}else {
sqlSession.rollback();
System.out.println("更新失败");
}
sqlSession.close();
}
public void getModel(Object objId) throws IOException{
String resource="mybatis-config.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
UserInfo us=userMapper.getModel(objId);
System.out.println(us.getUserName());
System.out.println(us.getUserEmail());
System.out.println(us.getUserPwd());
System.out.println(us.getUserAddress());
System.out.println(us.getRegReason());
}
public void getList(String name) throws IOException{
String resource="mybatis-config.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
List<UserInfo> list=userMapper.getUsers(name);
for(UserInfo i:list){
System.out.println(i.getUserName()+i.getUserEmail()+i.getUserAddress()+i.getRegReason());
}
}
}
实现基本的增删改查
1.通过外部配置文件做mybatis的基础性的配置。
1)先编写config.properties的文件(文件1建在src下)(做一些动态的配置)。
配置的内容如下:
jdbc.jdbcUrl=jdbc:oracle:thin:@127.0.0.1:1521:orcl
jdbc.driverClass=oracle.jdbc.driver.OracleDriver
jdbc.user=bbs
jdbc.password=123
2.在mybatis-config.xml(文件2建在src下)文件下引入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>
<propertiesresource="config.properties"><!—引入外部的配置文件-->
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc. driverClass }"/>
<property name="url" value="${jdbc. jdbcUrl }"/>
<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)做一个SQL映射文件:
2.Mapper接口代理的实现。
1)先定义一个接口(主要针对数据库表操作的接口)。比如:
package com.gxa.bj.dao;(文件3建在src下新建的包)
import java.util.List;
/**
* 针对数据库的数据的增删改查的功能做的接口
*@author ZY
*
*/
public interface IDaoBBS<T>{
/**
* 向数据库表里添加一条数据的方法
* @param t
* @throws SQLException
* @throws IllegalAccessException
* @throws IllegalArgumentException
*/
public int addItem(T t);
/**
* 从数据库表里删除一条数据的方法
* @param objId
*/
public int removeItem(Object objId);
/**
* 更新数据库表里的一条字段的方法
* @param t
*/
public int updateItem(T t);
/**
* 根据主键字段获取该条数据,并转换成实体对象
* @param objId
* @return
* @throws InvocationTargetException
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws SecurityException
* @throws NoSuchMethodException
*/
public T getModel(Object objId) ;
/**
* 根据查询条件获取多条数据,并转换成相应的集合
* @param objects
* @return
* @throws InvocationTargetException
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws SecurityException
* @throws NoSuchMethodException
*/
public List<T> getList(T t);
}
再针对该接口做一个针对UserInfo表的实现的接口:
package com.gxa.bj.dao.imp;(文件4建在src下新建的包)
import com.gxa.bj.dao.IDaoBBS;
import com.gxa.bj.model.UserInfo;
public interface UserMapperextends IDaoBBS<UserInfo> {
//模糊查询,查询到集合数据
public List<UserInfo> getUsers(String name);
}
2)在SQL的映射的xml文件里做如下配置
UserInfoMapper.xml(文件5建在src下新建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.imp.UserMapper">
<insert id="addItem"parameterType="com.gxa.bj.model.UserInfo">
insert intoUserInfo(userid,username,userpwd,useremail,useraddress,regreason)
values(usernext.nextval,#{userName},#{userPwd},#{userEmail},#{userAddress},#{regReason})
</insert>
<delete id="removeItem">
delete from UserInfo where userId=#{id}
</delete>
<update id="updateItem" parameterType="com.gxa.bj.model.UserInfo">
update UserInfo set userName=#{userName},userPwd=#{userPwd},userEmail=#{userEmail},userAddress=#{userAddress},regReason=#{regReason} where userId=#{userId}
</update>
<select id="getModel" resultType="com.gxa.bj.model.UserInfo">
select * from userinfo where userid=#{id}
</select>
<select id="getUsers" parameterType="String" resultType="com.gxa.bj.model.UserInfo">
select * from userinfo where userName like '%${value}%'
</select>
</mapper>
注意:namespace里是所针对的接口的名称(包括包名)。
接口里的方法全部定义为SQL语句的ID名。比如接口里有一个叫做addItem的方法,那么在SQL语句里就有一个id名为addItem的sql语句。
(文件6建在src下新建的包,包下面建实体对象类,例如userinfo用户类titleinfo,typeinfo,replyinfo)
com.gxa.bj.model
下面是项目基本包文件截图
下面是com.gxa.bj.model下的类
例如用户类
package com.gxa.bj.model;
public class UserInfo {
private Integer userId;//用户id
private String userName;//用户姓名
private String userPwd;//用户密码
private String userEmail;//用户邮箱
private String regReason;//注册原因
private String userAddress;//用户住址
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 getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
public String getRegReason() {
return regReason;
}
public void setRegReason(String regReason) {
this.regReason = regReason;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
}
测试方法事例
TestUI.java类
package com.gxa.bj.dao.imp;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
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.gxa.bj.model.UserInfo;
public class TestUI {
public static void main(String[] args){
TestUI t=new TestUI();
//增加
// UserInfo u=new UserInfo();
// u.setUserName("小米");
// u.setUserPwd("222");
// u.setUserEmail("123@qq.com");
// u.setUserAddress("成都");
// u.setRegReason("想加入");
// try {
// t.addUserInfo(u);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//删除
// try {
// t.deleteUserInfo(41);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//更新
// UserInfo u=new UserInfo();
// u.setUserId(42);
// u.setUserName("xiaoqiang");
// u.setUserPwd("1234");
// u.setUserEmail("ww@qq.com");
// u.setUserAddress("重庆");
// u.setRegReason("??");
// try {
// t.updateUserInfo(u);
//
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//根据id查询
// try {
// t.getModel(42);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
try {
t.getList("小");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void addUserInfo(UserInfo u) throws IOException{
String resource="mybatis-config.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
if(userMapper.addItem(u)>0){
sqlSession.commit();
System.out.println("添加成功");
}else{
sqlSession.rollback();
System.out.println("添加失败");
}
sqlSession.close();
}
public void deleteUserInfo(int id) throws IOException{
String resource="mybatis-config.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
if(userMapper.removeItem(id)>0){
sqlSession.commit();
System.out.println("删除成功");
}else{
sqlSession.rollback();
System.out.println("删除失败");
}
sqlSe
b655
ssion.close();
}
public void updateUserInfo(UserInfo u) throws IOException{
String resource="mybatis-config.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
if(userMapper.updateItem(u)>0){
sqlSession.commit();
System.out.println("更新成功");
}else {
sqlSession.rollback();
System.out.println("更新失败");
}
sqlSession.close();
}
public void getModel(Object objId) throws IOException{
String resource="mybatis-config.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
UserInfo us=userMapper.getModel(objId);
System.out.println(us.getUserName());
System.out.println(us.getUserEmail());
System.out.println(us.getUserPwd());
System.out.println(us.getUserAddress());
System.out.println(us.getRegReason());
}
public void getList(String name) throws IOException{
String resource="mybatis-config.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
List<UserInfo> list=userMapper.getUsers(name);
for(UserInfo i:list){
System.out.println(i.getUserName()+i.getUserEmail()+i.getUserAddress()+i.getRegReason());
}
}
}
实现基本的增删改查
相关文章推荐
- android:打造万能通用适配器
- Android下的多线程通信机制
- Android多渠道打包
- Android进阶之自定义View实战(三)贝塞尔曲线应用
- Android 汉字转拼音
- iOS开发讯飞语音的集成
- Android ScrollView中镶嵌GridView
- iOS URL编码和URL解码
- Android属性动画学习笔记(一)
- android开发教程(四)——java之Hello World
- swift 视频合成剪辑——swift学习(十)
- iOS-视频格式转换(MOV->MP4)
- 【iOS开发】如何给字符串添加超连接(响应事件)
- iOS开发技巧之:获取iOS项目名称及版本号
- Android自动更新App
- 学习lambda表达式
- Android安全开发之Provider组件安全
- Android ListView初始化将实例化多少个item
- 收藏Android学习过程中的精华博客
- (OK)(OK) seem-tools-auto_create_vm_android.sh