SSM学习

JDBC 测试工程
新建javaProject, 导入:数据库驱动包 mysql-connector-java-5.1.46-bin.jar

package com.zcl.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JdbcTest {
		
	public static void main(String[] args) {

		//链接对象
		Connection con = null;
		
		//查询对象
		PreparedStatement ps = null;
		
		//结果集对象
		ResultSet rs = null;
		
		try {
			//加载数据库驱动
			Class.forName("com.mysql.jdbc.Driver");
			
			//获取连接
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ssm_mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false", "root", "123");
			
			String sql = "SELECT * FROM user WHERE u_sex = ?";
			//获取statement
			ps = con.prepareStatement(sql );
			ps.setString(1, "0");
			
			//查询 输出结果
			rs = ps.executeQuery();
			while(rs.next()) {
				System.out.println(rs.getString("u_id") + "   " + rs.getString("u_username") +"   " + rs.getString("u_sex"));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			if(rs != null) {
				try {
					rs.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			
			if(ps != null) {
				try {
					ps.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			
			if(con != null) {
				try {
					con.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		
		
		
	}
}

Mybatis测试工程:
新建javaProject, 导入:
数据库驱动包: mysql-connector-java-5.1.46-bin.jar ojdbc7.jar
mybatis包: mybatis-3.4.6.jar
依赖包:
在这里插入图片描述
创建javaBean对象

User

package com.sikiedu.bean;

import java.util.Date;

public class User {

	/**
	 * CREATE TABLE `user` (
	  `u_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
	  `u_username` VARCHAR(64) NOT NULL COMMENT '用户名',
	  `u_password` VARCHAR(64) NOT NULL COMMENT '用户密码',
	  `u_sex` VARCHAR(16) DEFAULT NULL COMMENT '用户性别',
	  `u_createTime` DATETIME DEFAULT NULL COMMENT '用户创建时间',
	  `u_cid` INT(11) NOT NULL COMMENT '用户国家id',
	 */
	
	private Integer u_id;
	private String u_username;
	private String u_password;
	private String u_sex;
	private Date u_createTime;
	private Integer u_cid;
	
	public Integer getU_id() {
		return u_id;
	}
	public void setU_id(Integer u_id) {
		this.u_id = u_id;
	}
	public String getU_username() {
		return u_username;
	}
	public void setU_username(String u_username) {
		this.u_username = u_username;
	}
	public String getU_password() {
		return u_password;
	}
	public void setU_password(String u_password) {
		this.u_password = u_password;
	}
	public String getU_sex() {
		return u_sex;
	}
	public void setU_sex(String u_sex) {
		this.u_sex = u_sex;
	}
	public Date getU_createTime() {
		return u_createTime;
	}
	public void setU_createTime(Date u_createTime) {
		this.u_createTime = u_createTime;
	}
	public Integer getU_cid() {
		return u_cid;
	}
	public void setU_cid(Integer u_cid) {
		this.u_cid = u_cid;
	}
	@Override
	public String toString() {
		return "User [u_id=" + u_id + ", u_username=" + u_username + ", u_password=" + u_password + ", u_sex=" + u_sex
				+ ", u_createTime=" + u_createTime + ", u_cid=" + u_cid + "]";
	}
}



创建主配置文件

sqlMapCOnfig.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>
	<!-- 读取配置文件 -->
	<properties resource="db.properties"/>
	
	<!--  推荐使用package包的形式来配置别名
			包的形式会扫描主包及子包下的所有文件
			以对象类名为别名,大小写不限,推荐使用小写
	 -->
	<typeAliases>
		<!-- 	<typeAlias type="com.sikiedu.bean.User" alias="user"/> -->
		<package name="com.sikiedu.bean"/>
	</typeAliases>
	
 <!-- 在集成spring 是不用 -->
  <environments default="development">
    <environment id="development">
    <!-- 使用jdbc的事务 -->
      <transactionManager type="JDBC"/>
      <!-- 使用连接池 连接数据库 -->
      <dataSource type="POOLED">
        <property name="driver" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
      </dataSource>
    </environment>
  </environments>
  
  <!-- 配置映射器的位置 -->
  <mappers>
   	<!-- <mapper resource="mapper/UserMapper.xml"/> -->
   	<!-- <mapper url="file:\\\D:\Work\Siki_edu\JavaEE\Teach\SSM框架\ssm_project\ssm_mybatis\src\mapper\UserMapper.xml"/> -->
   	<!-- <mapper class="com.sikiedu.mapper.UserMapper"/> -->
   	<!-- 推荐使用包的形式配置 -->
   	<package name="com.sikiedu.mapper"/>
   	
  </mappers>
</configuration>

创建UserMapper配置文件

<?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.sikiedu.mapper.UserMapper">
	<!-- 根据id查询用户 -->
	<select id="selectUserById" parameterType="Integer" resultType="user">
		 select * from user where u_id = #{id}
	</select>
	
	<!-- 根据名字模糊查询用户 -->
	<!-- #{} 占位符 尽量选用#{}来解决问题 '1' '王'-->
	<!-- ${} 字符串拼接 or 1=1  王 -->
	<!-- order by ${} -->
	<select id="selectUserByName" parameterType="String" resultType="com.sikiedu.bean.User">
		<!-- SELECT * FROM USER WHERE u_username LIKE '%${value}%' -->
		SELECT * FROM USER WHERE u_username LIKE "%"#{name}"%"
	</select>
	
	<!-- 添加用户 -->
	<insert id="insertUser" parameterType="com.sikiedu.bean.User">
		insert into user values( null, #{u_username} , #{u_password}, #{u_sex}, #{u_createTime}, #{u_cid} )
	</insert>
	
	<!-- 修改用户 -->
	<update id="updateUser" parameterType="com.sikiedu.bean.User">
		update user set u_username = #{u_username} where u_id = #{u_id}
	</update>
	
	<!-- 根据id删除用户 -->
	<delete id="deleteUserById" parameterType="Integer">
		delete from user Where u_id = #{id}
	</delete>
	
</mapper>

使用
HelloMyBatis .java

package com.sikiedu.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List;

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 org.junit.Test;

import com.sikiedu.bean.User;

public class HelloMyBatis {

	@Test
	//入门程序 通过ID 查询用户
	public void Test1() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//需要sqlSessionFactoryBulider
		SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = ssfb.build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
		
		//操作数据库
		//参数1:要操作的sql语句   参数2 sql语句的参数
		User user = session.selectOne("UserMapper.selectUserById", 1);
		System.out.println(user);
	}
	
	@Test
	//入门程序 通过ID 查询用户
	public void Test2() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//需要sqlSessionFactoryBulider
		SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = ssfb.build(in);
		
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
		
		//操作数据库
		//参数1:要操作的sql语句   参数2 sql语句的参数
		List<User> list = session.selectList("UserMapper.selectUserByName", "王");
		
		for (User u : list) {
			System.out.println(u);
		}
	}
	
	@Test
	//入门程序 通过ID 查询用户
	public void Test3() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//需要sqlSessionFactoryBulider
		SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = ssfb.build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
		
		//操作数据库
		//参数1:要操作的sql语句   参数2 sql语句的参数
		User user = new User();
		user.setU_username("小明1");
		user.setU_password("123123");
		user.setU_sex("1");
		user.setU_createTime(new Date());
		user.setU_cid(1);
		
		session.insert("UserMapper.insertUser", user);
		session.commit();
	}
	
	@Test
	//入门程序 通过ID 查询用户
	public void Test4() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//需要sqlSessionFactoryBulider
		SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = ssfb.build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
		
		//操作数据库
		//参数1:要操作的sql语句   参数2 sql语句的参数
		User user = new User();
		user.setU_id(13);
		user.setU_username("小刚");
		
		session.update("UserMapper.updateUser", user);
		session.commit();
	}
	
	@Test
	//入门程序 通过ID 查询用户
	public void Test5() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//需要sqlSessionFactoryBulider
		SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = ssfb.build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
		
		//操作数据库
		//参数1:要操作的sql语句   参数2 sql语句的参数
	
		session.delete("UserMapper.deleteUserById", 13);
		session.commit();
	}
	
}

DAO层开发
其实就是对上面的使用进一步封装

package com.sikiedu.dao;

import com.sikiedu.bean.User;

public interface UserDao {
	
	//根据id查询用户
	public User getUserById(Integer id);

}
package com.sikiedu.dao;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import com.sikiedu.bean.User;

public class UserDaoImpl implements UserDao {

	//sqlSession工厂
	private SqlSessionFactory ssf;
	
	//通过构造器给ssf 赋值
	public UserDaoImpl(SqlSessionFactory ssf) {
		this.ssf = ssf;
	}

	@Override
	public User getUserById(Integer id) {
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
		//操作数据库
		//参数1:要操作的sql语句   参数2 sql语句的参数
		return session.selectOne("UserMapper.selectUserById", id);
	}

}

DAO测试

package com.sikiedu.test;

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

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 org.junit.Test;

import com.sikiedu.bean.User;
import com.sikiedu.dao.UserDao;
import com.sikiedu.dao.UserDaoImpl;

public class UserDaoTest {
	
	//sqlSession工厂
	private static SqlSessionFactory ssf;
	
	static {
		String resource = "sqlMapConfig.xml";
		InputStream in;
		try {
			in = Resources.getResourceAsStream(resource );
			SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
			 ssf = ssfb.build(in);
			 in.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	@Test
	public void DaoTest() {
		UserDao dao = new UserDaoImpl(ssf);
		User user = dao.getUserById(1);
		System.out.println(user);
	}
	
}

动态代理开发
//mapper动态代理开发四大原则 + 一个注意
//1、接口方法名需要与mapper.xml的要调用的sql语句的id一致
//2、接口的形参类型需要与mapper.xml parameterType 一致
//3、接口的返回值需要与mapper.xml resultType一致
//4、mapper.xml 中namespace要与接口的全包名一致
//5、注意mapper动态代理开发中,根据返回值类型来自动选择

package com.sikiedu.mapper;

import java.util.List;

import com.sikiedu.bean.User;
import com.sikiedu.bean.UserVo;

public interface UserMapper {

	//mapper动态代理开发四大原则 + 一个注意
	//1、接口方法名需要与mapper.xml的要调用的sql语句的id一致
	//2、接口的形参类型需要与mapper.xml parameterType 一致
	//3、接口的返回值需要与mapper.xml resultType一致
	//4、mapper.xml 中namespace要与接口的全包名一致
	//5、注意mapper动态代理开发中,根据返回值类型来自动选择
	
	//通过id查询一个用户
	public User selectUserById(Integer id);
	
	//通过用户名模糊查询 获取用户列表
	public List<User> selectUserByName(String name);
	
	//通过UserVo id查询一个用户
	public User selectUserByUserVoId(UserVo vo);
	
	//查询用户总条数
	public Integer selectUserCount();
	
	//查询所有用户包装类
	public List<UserVo> selectAllUserVo();
	
	//多条件查询 通过用户对象中的条件查询用户列表
	public List<User> selectUserListByUser(User u);

	//多条件查询 通过用户对象中的条件查询用户列表Trim
	public List<User> selectUserListByUserTrim(User u);

	//更新用户表
	public void updateSetUser(User u);
	
	//使用多个id获取用户列表 by array
	public List<User> selectUserListByIds(Integer[] ids);
	
	//使用多个id获取用户列表 by list
	public List<User> selectUserListByList(List<Integer> idList);
	
	//使用多个id获取用户列表 by userVO
	public List<User> selectUserListByUserVo(UserVo vo);
}

Mapper动态代理开发测试

package com.sikiedu.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

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 org.junit.Test;

import com.sikiedu.bean.Country;
import com.sikiedu.bean.CountryVo;
import com.sikiedu.bean.User;
import com.sikiedu.bean.UserVo;
import com.sikiedu.mapper.CountryMapper;
import com.sikiedu.mapper.UserMapper;

public class MapperTest {
	
	@Test
	public void Test1() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
		
		UserMapper mapper = session.getMapper(UserMapper.class);
		
		User user = mapper.selectUserById(1);
		System.out.println(user);
		
	}
	
	@Test
	public void Test2() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
		
		UserMapper mapper = session.getMapper(UserMapper.class);
		
		List<User> list = mapper.selectUserByName("王");
		for (User u : list) {
			System.out.println(u);
		}
	}
	
	@Test
	public void Test_selectUserByUserVoId() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
		
		UserMapper mapper = session.getMapper(UserMapper.class);
		
		UserVo vo = new UserVo();
		User u = new User();
		u.setU_id(5);
		//vo.setUser(u);
		
		User user = mapper.selectUserByUserVoId(vo );
		System.out.println(user);
	}
	
	@Test
	public void Test_selectUserCount() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
		
		UserMapper mapper = session.getMapper(UserMapper.class);
		
		Integer count = mapper.selectUserCount();
		System.out.println(count);
	}
	
	@Test
	public void Test_selectAll() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
		
		CountryMapper mapper = session.getMapper(CountryMapper.class);
		
		List<Country> list = mapper.selectAll();
		
		for (Country country : list) {
			System.out.println(country);
		}
	}
	
	@Test
	public void Test_selectAllUserVo() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
		
		UserMapper mapper = session.getMapper(UserMapper.class);
		
		List<UserVo> list = mapper.selectAllUserVo();
		
		for (UserVo userVo : list) {
			System.out.println(userVo);
		}
	}
	
	@Test
	public void Test_selectAllCountryVo() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
			
		CountryMapper mapper = session.getMapper(CountryMapper.class);
		List<CountryVo> list = mapper.selectAllCountryVo();
		
		for (CountryVo countryVo : list) {
			System.out.println(countryVo);
		}
	}
	
	@Test
	public void Test_selectUserListByUser() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
			
		UserMapper mapper = session.getMapper(UserMapper.class);
		
		User u = new User();
		u.setU_sex("1");
		u.setU_username("王");
		//u.setU_cid(1);
		
		List<User> list = mapper.selectUserListByUser(u);
		
		for (User user : list) {
			System.out.println(user);
		}
	}
	
	@Test
	public void Test_selectUserListByUserTrim() throws IOException {
		String resource = "sqlMapConfig.xml";
		//读取配置文件
		InputStream in = Resources.getResourceAsStream(resource );
		
		//创建sqlSessionfactory
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		 
		//生产一个sqlSession
		SqlSession session = ssf.openSession();
			
		UserMapper mapper = session.getMapper(UserMapper.class);
		
		User u = new User();
		u.setU_sex("1");
		u.setU_username("王");
		//u.setU_cid(1);
		
		List<User> list = mapper.selectUserListByUserTrim(u);
		
		for (User user : list) {
			System.out.println(user);
		}
	}
	
	@Test
	public void Test_updateSetUser() throws IOException {
		String resource = "sqlMapConfig.xml";
		InputStream in = Resources.getResourceAsStream(resource );
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		SqlSession session = ssf.openSession();
		
		UserMapper mapper = session.getMapper(UserMapper.class);
		User u = new User();
		u.setU_id(1);
		u.setU_username("隔壁老王");
		u.setU_password("aaa");
		//u.setU_sex("1");
		
		mapper.updateSetUser(u);
		session.commit();
	}
	
	
	@Test
	public void Test_selectUserListByIds() throws IOException {
		String resource = "sqlMapConfig.xml";
		InputStream in = Resources.getResourceAsStream(resource );
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		SqlSession session = ssf.openSession();
		
		UserMapper mapper = session.getMapper(UserMapper.class);
		Integer[] ids = {1, 3, 5, 12};
		List<User> list = mapper.selectUserListByIds(ids);
		
		for (User user : list) {
			System.out.println(user);
		}
		
	}
	
	@Test
	public void Test_selectUserListByList() throws IOException {
		String resource = "sqlMapConfig.xml";
		InputStream in = Resources.getResourceAsStream(resource );
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		SqlSession session = ssf.openSession();
		
		UserMapper mapper = session.getMapper(UserMapper.class);
		
		List<Integer> idList = new ArrayList<Integer>();
		idList.add(1);
		idList.add(4);
		idList.add(8);
		
		List<User> list = mapper.selectUserListByList(idList );
		
		for (User user : list) {
			System.out.println(user);
		}
	}
	
	@Test
	public void Test_selectUserListByUserVo() throws IOException {
		String resource = "sqlMapConfig.xml";
		InputStream in = Resources.getResourceAsStream(resource );
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		SqlSession session = ssf.openSession();
		
		UserMapper mapper = session.getMapper(UserMapper.class);
		
		List<Integer> idList = new ArrayList<Integer>();
		idList.add(1);
		idList.add(4);
		idList.add(8);
		
		UserVo vo = new UserVo();
		vo.setIdList(idList);
		
		List<User> list = mapper.selectUserListByUserVo(vo );
		
		for (User user : list) {
			System.out.println(user);
		}
	}
}

MGB
根据数据库表生成 bean对象, java 接口, sqlMapper 配置文件, 是不是很强大啊
在这里插入图片描述
在这里插入图片描述

创建新的Java工程
复制配置文件, 导入依赖包, 运行就可以生成我们需要的文件了 。
在这里插入图片描述
Generator.java

package com.sikiedu.test;

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("src/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);
	}
}

如何写配置文件 :
generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
	<!-- 配置数据库连接的包 -->
  <!-- <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" /> -->
  <context id="MyGererator" targetRuntime="MyBatis3">
  
  <!-- 这个标签可以去掉注释 -->
  <commentGenerator>
  <!-- 去掉注释 -->
  	<property name="suppressAllComments" value="true"/>
  <!-- 去掉时间戳 -->
  	<property name="suppressDate" value="true"/>
  </commentGenerator>
  
  
  <!-- 数据库连接信息 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/ssm_mybatis"
        userId="root"
        password="123">
    </jdbcConnection>

	<!-- JAVA JDBC数据类型转换 -->
    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

	<!--  javaModelGenerator javaBean配置
	targetPackage 输入包名 输出路径
	targetProject 输出项目位置 -->
    <javaModelGenerator targetPackage="com.sikiedu.bean" targetProject="src">
    <!-- enableSubPackages 是否开启子包名称 是否在包名后边加上scheme名称 -->
      <property name="enableSubPackages" value="false" />
      <!-- 在Set中加入.trim -->
      <property name="trimStrings" value="true" />
    </javaModelGenerator>

	<!-- mapper.xml -->
    <sqlMapGenerator targetPackage="com.sikiedu.mapper"  targetProject="src">
      <property name="enableSubPackages" value="false" />
    </sqlMapGenerator>

	<!-- java接口  -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.sikiedu.mapper"  targetProject="src">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

	<!-- 数据表 要根据数据库中的表来生成  -->
	<table tableName="user"/>
	<table tableName="country"/>
	
    <!-- <table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" >
      <property name="useActualColumnNames" value="true"/>
      <generatedKey column="ID" sqlStatement="DB2" identity="true" />
      <columnOverride column="DATE_FIELD" property="startDate" />
      <ignoreColumn column="FRED" />
      <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
    </table> -->
  </context>
</generatorConfiguration>

使用生成的文件去操作数据库

package com.sikiedu.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

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 org.junit.Test;

import com.sikiedu.bean.User;
import com.sikiedu.bean.UserExample;
import com.sikiedu.mapper.UserMapper;

public class MapperTest {
	
	@Test
	public void Test1() throws IOException {
		String resource = "sqlMapConfig.xml";
		InputStream in = Resources.getResourceAsStream(resource );
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		SqlSession session = ssf.openSession();
		
		UserMapper mapper = session.getMapper(UserMapper.class);
		
		//按住键查询
		User user = mapper.selectByPrimaryKey(1);
		System.out.println(user);
	}
	
	@Test
	public void Test2() throws IOException {
		String resource = "sqlMapConfig.xml";
		InputStream in = Resources.getResourceAsStream(resource );
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		SqlSession session = ssf.openSession();
		
		UserMapper mapper = session.getMapper(UserMapper.class);
		
		UserExample example = new UserExample();
		//将条件封装到createCriteria集合中
		example.createCriteria().andUSexEqualTo("1").andUUsernameLike("%王%");
		
		//按条件查询
		List<User> list = mapper.selectByExample(example);
		
		for (User user : list) {
			System.out.println(user);
		}
	
	}
	
	@Test
	public void Test3() throws IOException {
		String resource = "sqlMapConfig.xml";
		InputStream in = Resources.getResourceAsStream(resource );
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
		SqlSession session = ssf.openSession();
		
		UserMapper mapper = session.getMapper(UserMapper.class);
		User user = new User() ;
		user.setuUsername("赵云");
		
		mapper.insertSelective(user);
		
		session.commit();
	}
	
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值