MyBatis初学者总结-搭建MyBatis环境步骤

本文介绍如何搭建MyBatis框架,包括配置文件、实体类、映射文件等步骤,并通过示例演示如何进行增删改查操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 搭建mybatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。MyBatis 只是一个半自动化的ORM实现,需要我们自己写sql,而不像hibernate那样,直接定义好实体与数据表的映射就行。

1. 导入jar包:


注意:画出来的那几个是用来配置batis的,其他的是写DBUtils.java用到的

2. 创建entity包,在entity包中创建实体类(UserInfo.java

package entity;

 

public class UserInfo {

private Integer id;

private String name;

private String password;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public UserInfo(Integer id, String name, String password) {

super();

this.id = id;

this.name = name;

this.password = password;

}

public UserInfo(String name, String password) {

super();

this.name = name;

this.password = password;

}

public UserInfo() {

super();

// TODO Auto-generated constructor stub

}

@Override

public String toString() {

return "UserInfo [id=" + id + ", name=" + name + ", password=" + password + "]";

}

 

}

 

 

3. 创建配置文件(batis-config.xml

 

<configuration>

     <environments default="development">

<environment id="development">

<transactionManager type="JDBC" />

<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>

</configuration>

 

 

注意:

<Configuration>标签前面需要配置

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

 

 

4. 创建属性文件(db.preperties

 driver=oracle.jdbc.OracleDriver

url=jdbc:oracle:thin:@localhost:1521:orcl

username=test2

password=123456

 

5. 配置文件中(batis-config.xml)加载属性文件(db.preperties为了获取属性文件中定义的值。放置<environments>前面

 <properties resource="db.properties">

</properties>

 

6. 创建tools包,在tools包中创建工具类(DBUtils.java

package tools;

 

 

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;

 

public class DBUtils {

private static SqlSessionFactory factory;

static {

try {

//读取配置文件

Reader reader = Resources.getResourceAsReader("batis-config.xml");

//创建SqlSessionFactory

factory=new SqlSessionFactoryBuilder().build(reader);

} catch (IOException e) {

e.printStackTrace();

}

}

/**

 * 打开session

 * @param flag

 * @return

 */

public static SqlSession getSession(boolean flag) {

return factory.openSession(flag);

}

/**

 * 关闭session

 * @param session

 */

public static void close(SqlSession session) {

if(session!=null) {

session.close();

}

}

/**

 * 事务回滚

 * @param session

 */

public static void rollback(SqlSession session) {

if(session!=null) {

session.rollback();

}

}

/**

 * 事务提交

 * @param session

 */

public static void commit(SqlSession session) {

if(session!=null) {

session.commit();

}

}

 

}

 

 

7. 创建映射文件dao->>UserInfoMapper接口及定义方法->>创建映射文件

注意:橙色的id名称就是接口中定义的方法名称,两者要一致

 <mapper namespace="dao.UserInfoMapper">

<select id="login" parameterType="UserInfo" resultMap="userInfoResult">

select * from userInfo where name=#{username} and password=#{password}

</select>

<select id="findAll" resultMap="userInfoResult">

    select * from userInfo

</select>

<insert id="insert">

    insert into userInfo(name,password) values(#{username},#{password})

</insert>

<update id="update" parameterType="UserInfo" >

    update userInfo set name=#{username},password=#{password} where id=#{id}

</update>

<delete id="delete" parameterType="int">

    delete from userInfo where id=#{id}

</delete>

</mapper>

 

 

注意:上面红色的是需要在batis-config.xml定义的别名,若不定义,则应写成:entity.UserInfo

batis-config.xml定义别名:

<typeAliases>

    <typeAlias type="entity.UserInfo" alias="UserInfo"/>

</typeAliases>

 

entity.UserInfo+实体类名 UserInfo别名

8. 上面绿色的,若实体类中的属性数据库的属性没有对应,则需要进行属性映射放在<mapper>标签下面

  

  <resultMap type="entity.UserInfo" id="userInfoResult">

<id column="id" property="id" />

<result property="username" column="name" />

<result property="password" column="password" />

</resultMap>

 

 

注意:username是对应实体类中的属性名,而name是对应数据库中的属性名

9. batis-config.xml中配置mapper.xml文件

<mappers>

         <mapper resource="dao/UserInfoMapper.xml"/>

</mappers>

 

 

10. 创建测试类

(1)采用select方法

 @Test

public void testMybatis() {

 

SqlSession session = null;

try {

session = DBUtils.getSession(true);

UserInfo userInfo = new UserInfo("TOM", "123456");

UserInfo user = session.selectOne("dao.UserInfoMapper.login", userInfo);

if (user == null) {

System.out.println("登錄失敗!");

} else {

System.out.println("登錄成功!");

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (session != null) {

DBUtils.close(session);

}

}

}

 

 

2)采用getMapper()方法

   

  @Test

public void testMapper() {

SqlSession session = null;

try {

 

session = DBUtils.getSession(true);

UserInfo userInfo = new UserInfo("TOM", "123456");

UserInfo user = session.getMapper(UserInfoMapper.class).login(userInfo);

if (user == null) {

System.out.println("登录失败");

} else {

System.out.println("登录成功");

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (session != null) {

DBUtils.close(session);

}

}

}

 



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值