您的位置:首页 > 其它

Mybatis使用学习

2014-09-06 21:28 204 查看
一、使用步骤

1、(引入框架)下载相应的包并编写配置文件。

2、(使用框架)

定义相关的数据库操作接口;

在XMl文件中进行映射,用来实现对数据库的对应操作;

调用相关的接口,操作数据库;

二、实例(MyBatis+Mysql数据库)

1、下载Mybatis包:mybatis-3.3.0-SNAPSHOT.jar

Mysql数据库驱动包:mysql-connector-java-5.1.32-bin.jar

log包:log4j-1.2.17.jar

------新建Dynamic web project ,新建lib目录添加上面的包,并添加到Build Path下。

2、在src目录下,新建Xml文件,名字可为mybatis-config.xml:Mybatis 不能新建数据库,和表,所以需要提前简历好数据库和相应的表,这个例子中为Mybatis数据库,user表。

<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/mybatis/config/UserDaoMapper.xml"/>
</mappers>
</configuration>


3、定义相关接口:这里为UserDao.java(定义相关的类User.java)

User.java类:

package com.mybatis.config;

public class User {
private int userId;
private String userName;
private String password;
private String comment;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
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 getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}


UserDao.java

package com.mybatis.config;

import java.util.List;

public interface UserDao {

public int insert(User user);

public int update(User user);

public int delete(String userName);

public List<User> selectAll();

public int countAll();

public User findByUserName(String userName);
}
4.在Xml文件中实现接口功能:UserDaoMapper.xml 并在Mybatis-confi.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.mybatis.config.UserDao">
<select id="countAll" resultType="int">
select count(*) c from user;
</select>

<select id="selectAll" resultType="com.mybatis.config.User">
select * from user order by userName asc
</select>

<insert id="insert" parameterType="com.mybatis.config.User">
insert into user(userName,password,comment) values(#{userName},#{password},#{comment})
</insert>

<update id="update" parameterType="com.mybatis.config.User">
update user set userName=#{userName},password=#{password},comment=#{comment} where userName=#{userName}
</update>

<delete id="delete" parameterType="int">
delete from user where userName=#{userName}
</delete>

<select id="findByUserName" parameterType="String" resultType="com.mybatis.config.User">
select * from user where userName=#{userName}
</select>
</mapper>


5、在程序中使用:

步骤:获取SqlSessionFactory;

获取SqlSession

执行Sql语句

关闭Session

Mybatis工具类:MybatisUtil.java

package com.mybatis.config;

import java.io.IOException;
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;

import com.mysql.jdbc.interceptors.SessionAssociationInterceptor;

public class MybatisUtil {

private static String resource = "mybatis-config.xml";
private static SqlSessionFactory factory;

static {
try {
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
factory = builder.build(reader);
} catch (IOException e) {
System.out.println("初始化SqlSessionFactory失败!");
e.printStackTrace();
}
}

private static SqlSession session;
/**
* 获取SqlSession
* @return
*/
public static SqlSession getSqlSession() {
session = factory.openSession();
return session;
}

public static void closeSession(){
session.close();
}
}


测试结果:

package com.mybatis.config;

import java.util.Iterator;
import java.util.List;

public class TestMain {

public static void main(String[] args) {
User user=new User();
user.setUserId(100);
user.setUserName("wngshipeng");
user.setPassword("sfasfasf");
user.setComment("啦啦啦德玛西亚");

UserDao userdao=MybatisUtil.getSqlSession().getMapper(UserDao.class);
userdao.insert(user);
List<User> users=userdao.selectAll();
Iterator<User> iter=users.iterator();
while(iter.hasNext()){
User u = iter.next();
System.out.println(u.getUserName());
}

MybatisUtil.getSqlSession().commit();
MybatisUtil.closeSession();
}
}


网上有很多例子是结合junit使用的,而我没有采用这种方法,如果log4j.jar有警告信息,可上网搜相关的解决方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: