A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯超 高级黑马   /  2014-5-19 20:22  /  1007 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

环境:mysql eclipse。
需要jar包:mybatis-3.2.7\mybatis-3.2.7.jar
                 mysql-connector-java-5.1.6-bin.jar

mybatis也是持久化的,和hibernate一样。

数据库:
  1. create table user(
  2.    id int NOT NULL primary key AUTO_INCREMENT,
  3.    name varchar(20),
  4.    habite varchar(50)       
  5. );
复制代码


项目结构已经上图了:

简单说下:
dao层:
  1. package dao;

  2. import entity.User;

  3. public interface UserDao {
  4.          public User findById(String Id);  
  5.          public void saveUser(User u);
  6. }
复制代码

需要注意的是dao层的接口方法名字一定要和model层中的映射文件对应。

model层:
  1. package entity;

  2. public class User {
  3.         private int id;
  4.         private String name;
  5.         private String habite;
  6.         public int getId() {
  7.                 return id;
  8.         }
  9.         public void setId(int id) {
  10.                 this.id = id;
  11.         }
  12.         public String getName() {
  13.                 return name;
  14.         }
  15.         public void setName(String name) {
  16.                 this.name = name;
  17.         }
  18.         public String getHabite() {
  19.                 return habite;
  20.         }
  21.         public void setHabite(String habite) {
  22.                 this.habite = habite;
  23.         }
  24. }
复制代码

User隐射文件:
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE mapper PUBLIC   
  3.     "-//mybatis.org//DTD Mapper 3.0//EN"  
  4.     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  5.     <!--这块等于dao接口的实现  namespace必须和接口的类路径一样-->  
  6. <mapper namespace="dao.UserDao">  
  7.     <!-- findById必须和接口中的方法名一样  返回一个User  就是刚才的别名  如果不弄别名要连类路径一起写 麻烦-->  
  8.     <select id="findById"  resultType="entity.User">  
  9.         select * from user where id= #{id}  
  10.     </select>  
  11.     <!-- 同上 -->
  12.     <insert id="saveUser" parameterType="entity.User">
  13.         insert into user(name,habite) values(#{name},#{habite})
  14.     </insert>
  15. </mapper>  
复制代码



这个映射可是mybatis的核心吧,传入参数 返回结果 存储过程 触发器(目前小白也不是很多,值得深挖)

以上算是完成了。
测试:
  1. package test;

  2. import java.io.IOException;

  3. import org.apache.ibatis.io.Resources;
  4. import org.apache.ibatis.session.SqlSession;
  5. import org.apache.ibatis.session.SqlSessionFactory;
  6. import org.apache.ibatis.session.SqlSessionFactoryBuilder;

  7. import dao.UserDao;
  8. import entity.User;

  9. public class Test {
  10.         private static SqlSessionFactory getSessionFactory() {
  11.                 SqlSessionFactory sessionFactory = null;
  12.                 String resource = "configuration.xml";
  13.                 try {
  14.                         sessionFactory = new SqlSessionFactoryBuilder().build(Resources
  15.                                         .getResourceAsReader(resource));
  16.                 } catch (IOException e) {
  17.                         // TODO Auto-generated catch block
  18.                         e.printStackTrace();
  19.                 }
  20.                 return sessionFactory;
  21.         }

  22.         /**
  23.          * mybatis 测试
  24.          *
  25.          * @param args
  26.          */
  27.         public static void main(String[] args) {
  28.                 SqlSessionFactory sessionFactory = getSessionFactory();
  29.                 SqlSession session = sessionFactory.openSession();
  30.                 UserDao userDao = session.getMapper(UserDao.class);
  31. /*                User u = userDao.findById("1");
  32.                 System.out.println(u.getId() + ":" + u.getHabite());*/
  33.                 User u = new User();
  34.                 u.setName("sbRui");
  35.                 u.setHabite("吹哨");
  36.                
  37.                 //System.out.println(u.getName());
  38.                 userDao.saveUser(u);
  39.                 session.commit();  //一定要提交 不然插不进去
  40.                 session.close();
  41.         }
  42. }
复制代码

*一定要commit 不然插不上数据。

mybatis.jpg (43.02 KB, 下载次数: 14)

mybatis.jpg

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马