您的位置:首页 > 其它

mybatis(入门)

2014-05-11 13:03 323 查看
首先创建表:建表Sql文件

-- 导出 mybatis 的数据库结构
CREATE DATABASE IF NOT EXISTS `mybatis` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `mybatis`;
-- 导出  表 mybatis.t_user 结构
CREATE TABLE IF NOT EXISTS `t_user` (
`username` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`nickname` varchar(50) DEFAULT NULL,
`type` tinyint(4) DEFAULT NULL,
`id` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;


1、创建mybatis-config.xml文件,在该文件中完成和数据库的连接设置操作

<?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="jdbc.properties" />
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置mybatis的pooled的数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
 <mapper resource="edu/hhxy/btais/User.xml"/><!--加载mapper文件-->
</mappers>
</configuration>


src/jdbc.properties

2、根据数据表创建相应的实体类

Address.java

package edu.hhxy.btais;

public class Address {
private int id;
private String name;
private String phone;
private String postcode;
private User user;

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 getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getPostcode() {
return postcode;
}
public void setPostcode(String postcode) {
this.postcode = postcode;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}


User.java

package edu.hhxy.btais;

import java.util.List;

public class User {
private int id;
private String username;
private String password;
private String nickname;
private int type;
private List<Address> addresses;

public List<Address> getAddresses() {
return addresses;
}

public void setAddresses(List<Address> addresses) {
this.addresses = addresses;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getNickname() {
return nickname;
}

public void setNickname(String nickname) {
this.nickname = nickname;
}

public int getType() {
return type;
}

public void setType(int type) {
this.type = type;
}
}


3、创建mapper文件完成对实体类的映射,该文件同样是xml的文件

[b]User.xml[/b]

<?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="edu.hhxy.btais.User"><!--名称空间-->
<insert id="add" parameterType="edu.hhxy.btais.User"><!--全类名 包名+类名-->
insert into t_user
(username,password,nickname,type)
value(#{username},#{password},#{nickname},#{type})
</insert>
</mapper>


4、创建SQlSession,并且通过SqlSession完成对数据库的操作

package edu.hhxy.btais.test;

import java.io.IOException;
import java.io.InputStream;
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 edu.hhxy.btais.User;
public class TestFirstMybatis {

public static void main(String[] args) {
try {
// 1、创建配置文件(mybatis-config.xml)的输入流
InputStream is = Resources
.getResourceAsStream("mybatis-config.xml");
System.out.println(is.available());
// 2、创建SQLSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder()
.build(is);
// 3、创建SQLSessioin
SqlSession session = factory.openSession();
// 4、调用mapper文件插入数据(调用之前需要将mapper文件加入到mybatis-config.xml中)
User u = new User();
u.setNickname("孙悟空");
u.setPassword("123");
u.setType(0);
u.setUsername("wukong");
session.insert("edu.hhxy.btais.User.add", u);
session.commit();//别忘了提交
session.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}




5、最佳实践

1、创建相应的MyBatisUtil完成对Session的获取
2、不使用annotation完成sql的映射
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: