java使用mybtis操作数据库入门程序:

java使用mybatis操作数据库入门程序:

一:单个查询:


1,准备数据库:

见表信息:



数据信息:





2,eclipse准备:


实体类如下:

一个实体中就对应数据库的三个属性,然后set,get一下


package cn.itheima.pojo;

import java.io.Serializable;

public class Student implements Serializable {
	private int id;
	private String name;
	private String dept;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getDept() {
		return dept;
	}

	public void setDept(String dept) {
		this.dept = dept;
	}

}

配置文件如下:


<?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:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->
<mapper namespace="test">

<select id="queryStudentById" parameterType="int"
resultType="String">
select name from student where id=#{id}
</select>
</mapper>

主配置:

任务是连接数据库,然后加载上边的配置文件:


<?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>
	<!-- 和spring整合后 environments配置将废除 -->
	<environments default="development">
		<environment id="development">
			<!-- 使用jdbc事务管理 -->
			<transactionManager type="JDBC" />
			<!-- 数据库连接池 -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url"
					value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
	<!-- 加载映射文件 -->
	<mappers>
	<mapper resource="sqlmap/Student.xml"/>
	</mappers>
</configuration>

最后是测试类:


package cn.itheima.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.Before;
import org.junit.Test;

public class MybatisTest {
	private SqlSessionFactory sqlSessionFactory = null;

	@Before
	public void init() throws IOException {
		// 1,创建sqlsessionfactorybuilder对象
		SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
		// 2.加载slqmapConfig.xml配置
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
		// 3创建sqlsesisonfactory对象
		this.sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
	}

	@Test
	public void testQueryUserById() {
		// 4.创建sqlsesion对象
		SqlSession sqlSession = sqlSessionFactory.openSession();
		// 5.执行sqlsession对象执行查询,获取结果user
		// 第一个参数是User.xml的statement的id,第二个参数是执行sql需要的参数
		String name = sqlSession.selectOne("queryStudentById", 2);
		// 6.打印结果
		System.out.println(name);		
		// 释放资源
		sqlSession.close();
	}
}


控制台输出:










二:多个查询+模糊查询

接下来修改一点:上边查询的是一条结果,我下边利用模糊查询方式同时查询多条结果:

只修改配置文件student.xml和测试类,其他不变:

<select id="queryStudentLike" parameterType="String"
resultType="String">
select dept from student where name like #{name}
</select>

@Test
	public void testQueryUserLike() {
		// 4.创建sqlsesion对象
		SqlSession sqlSession = sqlSessionFactory.openSession();
		// 5.执行sqlsession对象执行查询,获取结果user
		// 第一个参数是User.xml的statement的id,第二个参数是执行sql需要的参数
		List<String> list = sqlSession.selectList("queryStudentLike", "%三%");
		// 6.打印结果
		for(String name:list){
			System.out.println(name);
		}
				
		// 释放资源
		sqlSession.close();
	}

控制台打印:







三:插入数据:

依旧变化两个代码:只修改配置文件student.xml和测试类,其他不变:

<insert id="saveStudent" parameterType="cn.itheima.pojo.Student">
insert into student (id,name,dept) values(#{id},#{name},#{dept})
</insert>
@Test
	public void TestSaveStudent(){
		//4创建要给sqlsession对象
		SqlSession sqlSession=sqlSessionFactory.openSession();
		//5.执行sqlsession对象执行保存
		///创建需要保存的user对象
		Student student=new Student();
		student.setId(40);
		student.setName("小张");
		student.setDept("光电");
		sqlSession.insert("saveStudent",student);
		System.out.println(student.getDept());
		//需要进行事务提交
		sqlSession.commit();
	}

查看数据库:












猜你喜欢

转载自blog.csdn.net/handsome2013/article/details/80738813