javaee mybatis

本文介绍了JavaEE项目中使用MyBatis框架进行数据库查询的步骤,包括配置文件设置、jar包放置、数据库连接信息修改、Mapper配置、Pojo类创建、接口定义以及测试方法。同时提到了通用Mapper的使用,如何配置并生成Pojo和Mapper文件。

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

javeee的mybatis框架,作用于数据库查询

mybatis 框架需要的配置文件config文件  下面的链接中

jar包和config配置文件在下面的通用mapper文件中都有

jar包放在WebRoot文件夹下的lib文件夹中,不需要buildpath(注意不要复制整个文件夹,要复制jar包)

但是要注意要修改config文件中的数据库连接的驱动,用户名,密码等,换成自己的

config和mapper的xml文件需要的dtd约束链接 点击打开链接  密码:0o3o

下面就需要修改config.xml文件,整个文件注意要修改的地方就是mapper映射配置

<package name="wrt.nynu.mapper"/>   所有在目标下的所有数据库映射文件全部配置

下来就需要读取配置文件和根据配置文件构建SqlSessionFactory 

package lu.nynu.utils;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MybtaisUtils {
	public static SqlSessionFactory sqlSessionFactory = null;
	// 第一个使用该类的时候调用
	static {
		try {
			// 1、读取配置文件
			InputStream stream = org.apache.ibatis.io.Resources
					.getResourceAsStream("mybatis-config.xml");
			// 2、根据配置文件构建SqlSessionFactory
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(stream);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
/**
 * // 3、通过SqlSessionFactory创建SqlSession,使用一次调用一次
 * @return 
 */
	public  static SqlSession getSqlSession() {
		return sqlSessionFactory.openSession();
	}
}

构建getsqlsession方法,之后在测试中会用到

之后就是生成po类,根据数据库属性生成po类,比如根据学生表定义一个学生类。根据教师表定义一个教师类。。生成get/set方法,构造函数,如果有输出的需要还需要重写tostring方法

最重要的是构建mapper,先以一个简单的查询语句说明:

定义一个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">
<!-- 配置dtd约束是要用 -->
<mapper namespace="wrt.nynu.mapper.wrt1"> <!-- 映射到那个接口文件,注意要复制qualified name -->
<select id="selectall" resultType="wrt.nynu.po.a1">
   SELECT * FROM a1
</select> 
</mapper>

这是一个简单的查询语句,写完xml文件后要随后写与之对应的接口文件

package wrt.nynu.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;

import wrt.nynu.po.a1;

public interface wrt1 {
    public List<a1> selectall(); //方法名要和xml文件的id名对应
    
}

最后就是测试方法

public void select()
       {
    	   SqlSession  sqlSession =MybtaisUtils.getSqlSession();//构建会话对象
    	   wrt1 wrt1=sqlSession.getMapper(wrt1.class);
    	   List<a1> list=wrt1.selectall();
    	   System.out.println(list);
       }

这是简单的数据库查询,查询语句除了在xml文件写还可以在接口文件用@方式写

package wrt.nynu.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;

import wrt.nynu.po.a1;

public interface wrt1 {
    
    @Insert(value="INSERT INTO a1 (a,b,c) VALUES (#{a},#{b},#{c}) ")
    public void insert(a1 a1);
    
    @Select(value=" SELECT * FROM a1")
    public List<a1> select2();
}//简单添加和查询

测试方法与上面类似

最后还可以用通用mapper的方法自动生成po类和mapper.

通用mapper文件的配置文件:点击打开链接 密码:x1us

根据配置文件generatorConfig.xml修改一些配置,比如文件生成位置,数据库表的对应

最后运行main文件自动运行,这样就可以自动生成了

package wrt.nynu.mainmapper;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

public class Generator {
	public static void main(String[] args) throws Exception {
		List<String> warnings = new ArrayList<String>();
		boolean overwrite = true;
		File configFile = new File("config/generatorConfig.xml");
		ConfigurationParser cp = new ConfigurationParser(warnings);
		Configuration config = cp.parseConfiguration(configFile);
		DefaultShellCallback callback = new DefaultShellCallback(overwrite);
		MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback, warnings);
		myBatisGenerator.generate(null);
	}
}

这些东西都是边学习边整理的,如果有错误请多多包涵和及时指正可怜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值