本文共 9055 字,大约阅读时间需要 30 分钟。
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架,其几乎消除了所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。MyBatis 应用程序大都使用 SqlSessionFactory 实例,SqlSessionFactory 实例可以通过 SqlSessionFactoryBuilder 获得,而 SqlSessionFactoryBuilder 则可以从一个 XML 配置文件或者一个预定义的配置类的实例获得。
mybatis-3.2.2.jar 核心jar
mysql-connector-java-5.1.10-bin.jar 数据库访问在resources下,新建Configuration.xml
示例:
package com.zyzpp.model;public class User { private int id; private String userName; private int userAge; private String userAddress; private Listcards; ....}
示例:
package com.zyzpp.inter;public interface IUserOperation { public User selectUserByID(int id); public ListselectUsers(String userName); public void addUser(User user); public void updateUser(User user); public void deleteUser(int id); public List getUserArticles(@Param("userid") int userid); //多个参数要加注释区分 public User getUserCards(int id); public int getCount(User user); public List getLimit(Map map);}
说白了,就是实现上步接口方法
insert into user(userName,userAge,userAddress) values(#{userName},#{userAge},#{userAddress}) update user set userName = #{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id} delete from user where id=#{id}
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;public class Test { private static SqlSessionFactory sqlSessionFactory; private static Reader reader; private static String resource = "Configuration.xml"; //mybatis的配置文件 static{ try{ /*使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)*/ reader=Resources.getResourceAsReader(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);//构建sqlSession的工厂 }catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { Test test =new Test(); User user=new User(); test.getLimit();// test.getCount(user);// test.getUserCards(1);// test.getUserArticles(1);// test.getUserList("%");// test.addUser();// test.updateUser(1, "这是更新后的地址");// test.deleteUser(3); } /* * 以ID查找单个数据 */ public void getUserByID(int id){ SqlSession session=sqlSessionFactory.openSession(); try{ IUserOperation userOperation=session.getMapper(IUserOperation.class); User user=userOperation.selectUserByID(id); System.out.println("查询ID:"+id+"结果如下\n"+"名字:"+user.getUserName()+" 年龄:"+user.getUserAge()+" 地址:"+user.getUserAddress()); }finally { session.close(); } } /* * 以name查找符合的List列表 */ public void getUserList(String userName){ SqlSession session=sqlSessionFactory.openSession(); try{ IUserOperation userOperation=session.getMapper(IUserOperation.class); Listusers = userOperation.selectUsers(userName); System.out.println("查询结果如下:"); for(User user: users){ System.out.println(user.toString()); } }finally { session.close(); } } /* * 增加一个用户 */ public void addUser(){ User user = new User(); user.setUserAddress("人民广场"); user.setUserAge(18); user.setUserName("飞鸟"); SqlSession session = sqlSessionFactory.openSession(); try{ IUserOperation userOperation =session .getMapper(IUserOperation.class); userOperation.addUser(user); session.commit(); System.out.println("当前增加的用户ID:"+user.getId()); }finally { session.close(); } } /* * 更新数据 */ public void updateUser(int id,String content){ //先得到用户,然后修改提交 SqlSession session = sqlSessionFactory.openSession(); try{ IUserOperation userOperation = session.getMapper(IUserOperation.class); User user = userOperation.selectUserByID(id); user.setUserAddress(content); userOperation.updateUser(user); session.commit(); System.out.println("更新ID:"+id+"成功!"); }finally { session.close(); } } /* * 删除数据 */ public void deleteUser(int id){ SqlSession session = sqlSessionFactory.openSession(); try{ IUserOperation userOperation = session.getMapper(IUserOperation.class); userOperation.deleteUser(id); session.commit(); System.out.println("删除ID:"+id+"成功!"); }finally { session.close(); } } /* * 多对一 */ public void getUserArticles(int userid){ SqlSession session = sqlSessionFactory.openSession(); try { IUserOperation userOperation=session.getMapper(IUserOperation.class); List articles = userOperation.getUserArticles(userid); for(Article article:articles){ System.out.println("标题:"+article.getTitle()+":内容:"+article.getContent()+ ":作者是:"+article.getUser().getUserName()+":地址:"+ article.getUser().getUserAddress()); } } finally { session.close(); } } /* * 一对多 */ private void getUserCards(int userid) { SqlSession session = sqlSessionFactory.openSession(); try { IUserOperation userOperation = session.getMapper(IUserOperation.class); User user = userOperation.getUserCards(userid); System.out.println(user.toString()); for (Card card : user.getCards()) { System.out.println(card.toString()); } } finally { session.close(); } } /* * 按条件查询总条数 */ private int getCount(User user){ SqlSession session = sqlSessionFactory.openSession(); try { IUserOperation userOperation = session.getMapper(IUserOperation.class); int i = userOperation.getCount(user); System.out.println("总条数:"+i); return i; } finally { session.close(); } } /** * 按条件查询List记录 */ private void getLimit(){ SqlSession session = sqlSessionFactory.openSession(); try { IUserOperation userOperation = session.getMapper(IUserOperation.class); Map map=new HashMap (); Page page=new Page(); page.setDbIndex(0); page.setDbNumber(1); User user=new User(); user.setId(1); map.put("page", page); map.put("user", user); List users = userOperation.getLimit(map); System.out.println("查询结果如下:"); for(User use: users){ System.out.println(use.toString()); } } finally { session.close(); } }}
转载地址:http://wbsel.baihongyu.com/