1、導入Jar包
2、編寫全局配置文件configuration.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>
<typeAliases>
<!--給實體類起一個別名 user -->
<typeAlias type="cn.sky.bookshop.beans.User" alias="User" />
</typeAliases>
<!--數據源配置 這塊用 mysql數據庫 -->
<environments default="development">
<environment id="development">
<transactionManager type="jdbc" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/ibatis" />
<property name="username" value="root" />
<property name="password" value="215890" />
</dataSource>
</environment>
</environments>
<mappers>
<!--userMapper.xml裝載進來 同等於把“dao”的實現裝載進來 -->
<mapper resource="User.xml" />
<mapper resource="UserMapper.xml" />
</mappers>
</configuration>
3、這裏編寫一個MyBatis工具類
package cn.sky.bookshop.utils;
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;
public final class MyBatisUtil {
private static SqlSessionFactory sessionFactory;
private static String resource = "configuration.xml";
static {
try {
sessionFactory = new SqlSessionFactoryBuilder()//
.build(Resources//
.getResourceAsReader(resource));
// sessionFactory.getConfiguration().addMapper(UserDao.class);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession() {
return sessionFactory.openSession();
}
}
然後接可以先建立一個測試類加載測試一番了。。
4、按Javabean規範寫的一個User類
package cn.sky.bookshop.beans;
public class User {
private int id;
private String userName;
private String password;
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Override
public String toString() {
return "User [email=" + email + ", id=" + id + ", password=" + password
+ ", username=" + userName + "]";
}
}
5、這裏將UserDao接口命名爲UserMapper接口
package cn.sky.bookshop.dao;
import cn.sky.bookshop.beans.User;
public interface UserMapper {
public User findUserByName(String username)throws Exception;
public void insertUser(User user)throws Exception;
public void updateUser(User user)throws Exception;
public void deleteUserById(int id)throws Exception;
}
6 、關鍵是這裏的UserMapper.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">
<!-- namespace必須是定義的接口全限定名 -->
<mapper namespace="cn.sky.bookshop.dao.UserMapper">
<!-- 裏面id是接口的方法名 parameterType是接口裏方法的傳入參數 -->
<insert id="insertUser" parameterType="User">
insert into
t_user(id,username,password,email)values(#{id},#{userName},#{password},#{email});
</insert>
<!-- resultType這裏是接口裏方法返回值類型:當方法返回集合時,這裏還是設爲集合元素類型 -->
<select id="findUserByName" parameterType="string" resultType="User">
select * from t_user where username=#{userName};
</select>
<update id="updateUser" parameterType="User">
update t_user set
username=#{userName},password=#{password},email=#{email} where
id=#{id};
</update>
<delete id="deleteUserById" parameterType="int">
delete from t_user
where id=#{id};
</delete>
</mapper>
7、注意:上面的步驟配置有些嚴格。。因爲下面的接口動態代理對象(就是個接口的實現)是根據UserMapper接口和UserMapper.xml文件生成的! 下面是我的DAO測試類
UserMapperTest
package cn.sky.bookshop.test;
import org.apache.ibatis.session.SqlSession;
import cn.sky.bookshop.beans.User;
import cn.sky.bookshop.dao.UserMapper;
import cn.sky.bookshop.utils.MyBatisUtil;
public class UserMapperTest {
/**
* @param args
*/
public static void main(String[] args) {
// addUserMapper(); 添加
// findUserMapper(); 查找
// updateUserMapper();更新
deleteUserMapper();
}
//添加記錄
public static void addUserMapper(){
SqlSession sqlSession = MyBatisUtil.getSqlSession();
//獲取接口的動態代理對象
UserMapper um = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setUserName("大俠");
user.setPassword("daxia");
user.setEmail("[email protected]");
try {
um.insertUser(user);
} catch (Exception e) {
e.printStackTrace();
}
sqlSession.commit();
sqlSession.close();
}
//查找記錄
public static void findUserMapper() {
SqlSession sqlSession = MyBatisUtil.getSqlSession();
UserMapper um = sqlSession.getMapper(UserMapper.class);
User user = null;
try {
user = um.findUserByName("大俠");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(user);
sqlSession.close();
}
//跟新紀錄
public static void updateUserMapper(){
SqlSession sqlSession = MyBatisUtil.getSqlSession();
UserMapper um = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setId(4);
user.setUserName("小蝦");
user.setPassword("xiaoxia");
user.setEmail("[email protected]");
try {
um.updateUser(user);
} catch (Exception e) {
e.printStackTrace();
}
sqlSession.commit();
sqlSession.close();
}
//刪除記錄
public static void deleteUserMapper(){
SqlSession sqlSession = MyBatisUtil.getSqlSession();
UserMapper um = sqlSession.getMapper(UserMapper.class);
try {
um.deleteUserById(4);
} catch (Exception e) {
e.printStackTrace();
}
sqlSession.commit();
sqlSession.close();
}
}