文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MyBatis简单配置及简单查询

2024-04-02 19:55

关注

1.把所需jar(mysql-connector-java-5.1.18-bin.jar和mybatis-3.3.0.jar)拷贝到lib目录下


2.编写与数据库对应的实体类UserInfo


3.创建mybatis-config.xml配置文件:

<!-- 	配置数据库连接   	-->
  <environments default="developments">
    <environment id="mysql">
      <transactionManager type="JDBC">
        <property name="" value=""/>
      </transactionManager>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf8"/>
        <property name="username" value="root"/>
        <property name="password" value="wc654321"/>
      </dataSource>
    </environment>
  </environments>

<!-- 对应的sql映射文件userinfo.xml -->
 <mappers>
    <mapper resource="com/wc/config/userinfo.xml"/>
 </mappers>


4.创建DBFactory类获取SqlSessionFactory


public class DBFactory {
	public static SqlSessionFactory sqlSessionFactory = null;
	static {
		try {
			String resource = "com/wc/config/mybatis-config.xml";
			InputStream inputStream = Resources.getResourceAsStream(resource);
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream,"mysql");//第二个参数:指定需要连接的数据库配置
			
		} catch (IOException e) {
			
		    e.printStackTrace();
		}
	}
	public static SqlSessionFactory getFactory(){
		return sqlSessionFactory;
	}

或者


public class DBAccess {

	public SqlSession getSqlSession() throws IOException{
		
		//(1)通过配置文件获取数据库连接相关信息<br>
		Reader reader = Resources.getResourceAsReader("com/wc/config/Configuration.xml");
		//(2)通过配置信息构建SqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader,"mysql");
		//(3)通过SqlSessionFactory打开数据库回话
		SqlSession sqlSession = sqlSessionFactory.openSession();
		return sqlSession;
	}
}


5.创建mybatis的sql映射文件userinfo.xml

 <mapper namespace="com.wc.Interface.IuserInfo"> :对应接口,统一命名空间,重要! 

 resultMap: property对应实体类属性,column 对应着数据库字段

 sql语句: 

    id="selectUserByInterface"  唯一标识

     parameterType="java.lang.Integer"  参数的类型  

     resultMap="userResult"  返回类型

    select <include refid="columns"/> from user_info order by user_id

    <sql id="columns">user_id,user_name,user_sex</sql> 

<?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.wc.Interface.IUserInfo">

  <resultMap type="com.wc.po.UserInfo" id="UserResult">
    <id column="user_id" jdbcType="INTEGER" property="userId"/>
    <result column="user_name" jdbcType="VARCHAR" property="userName"/>
    <result column="user_sex" jdbcType="VARCHAR" property="userSex"/>
  </resultMap>
   
   <select id="selectUserByInterface" parameterType="com.wc.po.UserInfo" resultMap="UserResult">
    select <include refid="columns"/> from user_info
    order by user_id
    </select>
  
   <select id="selectOneUserByInterface" parameterType="java.lang.Integer" resultMap="UserResult">
    select <include refid="columns"/> from user_info where user_id=#{userID}
    </select>

</mapper>

6.通过接口的方式调用XML的查询语句(面向接口式编程)

public interface IUserInfo {
	
	
	public UserInfo selectOneUserByInterface(int i);
	
	
	
	public List<UserInfo> selectUserByInterface();
	
}

7.从SqlSessionFactory里面获取SqlSession:DBFactory.getFactory().openSession(); 

 在从SqlSession拿到增删修查一系列方法


@Test
public void selectUserByInterface() {
	List<UserInfo>  userInfo = new ArrayList<UserInfo>();
	// 获取sqlSession
	SqlSession session = null;
	try {
		// 从SqlSessionFactory里获取SqlSession
		session = DBFactory.getFactory().openSession();
		//接口
		IUserInfo iUserInfo = session.getMapper(IUserInfo.class);
		userInfo = iUserInfo.selectUserByInterface();
		if (userInfo != null && userInfo.size() > 0) {
			for (UserInfo user : userInfo) {
				System.out.println(user);
			}
		}
	} catch (Exception e) {

	} finally {
		if (session != null) {
			session.close();
		}	
	}
}


@Test
public void selectOneUserByInterface() {
	// 获取sqlSession
	SqlSession session = null;
	try {
		// 从SqlSessionFactory里获取SqlSession
		session = DBFactory.getFactory().openSession();
		//UserInfo userInfo = session.selectOne("userinfo.selectOneUser",3);userinfo是以前的命名空间
		IUserInfo iUserInfo = session.getMapper(IUserInfo.class);
		UserInfo userInfo = iUserInfo.selectOneUserByInterface(3);
		System.out.println(userInfo);

	} catch (Exception e) {

	} finally {
		if (session != null) {
			session.close();
		}
	}
}

  最后关闭SqlSession


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯