黑马程序员技术交流社区
标题:
Mybatis入门 学习
[打印本页]
作者:
冯超
时间:
2014-5-19 20:22
标题:
Mybatis入门 学习
环境:mysql eclipse。
需要jar包:
mybatis-3.2.7\mybatis-3.2.7.jar
mysql-connector-java-5.1.6-bin.jar
mybatis也是持久化的,和hibernate一样。
数据库:
create table user(
id int NOT NULL primary key AUTO_INCREMENT,
name varchar(20),
habite varchar(50)
);
复制代码
项目结构已经上图了:
简单说下:
dao层:
package dao;
import entity.User;
public interface UserDao {
public User findById(String Id);
public void saveUser(User u);
}
复制代码
需要注意的是dao层的接口方法名字一定要和model层中的映射文件对应。
model层:
package entity;
public class User {
private int id;
private String name;
private String habite;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHabite() {
return habite;
}
public void setHabite(String habite) {
this.habite = habite;
}
}
复制代码
User隐射文件:
<?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">
<!--这块等于dao接口的实现 namespace必须和接口的类路径一样-->
<mapper namespace="dao.UserDao">
<!-- findById必须和接口中的方法名一样 返回一个User 就是刚才的别名 如果不弄别名要连类路径一起写 麻烦-->
<select id="findById" resultType="entity.User">
select * from user where id= #{id}
</select>
<!-- 同上 -->
<insert id="saveUser" parameterType="entity.User">
insert into user(name,habite) values(#{name},#{habite})
</insert>
</mapper>
复制代码
这个映射可是mybatis的核心吧,传入参数 返回结果 存储过程 触发器(目前小白也不是很多,值得深挖)
以上算是完成了。
测试:
package test;
import java.io.IOException;
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 dao.UserDao;
import entity.User;
public class Test {
private static SqlSessionFactory getSessionFactory() {
SqlSessionFactory sessionFactory = null;
String resource = "configuration.xml";
try {
sessionFactory = new SqlSessionFactoryBuilder().build(Resources
.getResourceAsReader(resource));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sessionFactory;
}
/**
* mybatis 测试
*
* @param args
*/
public static void main(String[] args) {
SqlSessionFactory sessionFactory = getSessionFactory();
SqlSession session = sessionFactory.openSession();
UserDao userDao = session.getMapper(UserDao.class);
/* User u = userDao.findById("1");
System.out.println(u.getId() + ":" + u.getHabite());*/
User u = new User();
u.setName("sbRui");
u.setHabite("吹哨");
//System.out.println(u.getName());
userDao.saveUser(u);
session.commit(); //一定要提交 不然插不进去
session.close();
}
}
复制代码
*一定要commit 不然插不上数据。
mybatis.jpg
(43.02 KB, 下载次数: 15)
下载附件
2014-5-19 20:18 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2