mybatis的简单实例
来源:互联网 发布:传智播客mysql百度云 编辑:程序博客网 时间:2024/05/22 10:26
最近开始学习mybatis,感觉非常好用。
首先创建Mybatis_test项目,在src下创建lib文件夹,将mybatis的jar包和mysql连接的jar包添加到项目路径
所用到的jar包:http://download.csdn.net/detail/fengsigaoju/9850015
随后使用mysql在名为mybatis的database下创建student表,具体内容如下:
create table student( -> id int auto_increment, -> name varchar(100), -> age int, -> primary key(id));
在src包下创建com.po包,用来存放beans,在com.po包下创建Student.java
package com.po;public class Student { private int id; private String name; private int age; 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 int getAge() {return age;} public void setAge(int age) {this.age = age;} }在src下创建com.mapping包,用来存放映射的sql语句,创建接口
StudentMapper.java
package com.mapping;import java.util.List;import com.po.Student;//这个接口很重要,当外部代码调用接口方法时,就会执行与其相绑定的sql语句,类名需要与与映射xml文件中名字空间相同,方法名需要与映射xml文件中的id相同//充分体现了sql代码与业务逻辑解耦合的特性,我们可以在代码设计阶段就将这个接口完成,然后具体填充其中的内容public interface StudentMapper { Student SelectStudent(String name);//根据姓名查询某一个学生是否存在 List<Student>SelectStudentList();//查询表中所有数据 void InsertStudent(String name,int age);//根据姓名和年龄,插入新信息 void DeleteStudent(int id);//根据传入id删除信息 void UpdateStudent(String name,int age);//根据名字更改年龄}在com.mapping包下创建StudentMapper.xml,用来与接口方法相关联,映射到sql语句上
StudentMapper.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"><mapper namespace="com.mapping.StudentMapper"><!-- 对应的是指定的实体类 --><!-- 后面对应的是接口每一个方法 resultType是返回值类型,如果直接返回的是Student类型,那不用说,肯定是Student类型,如果返回的列表,那么指的是里面具体的类型,还是Student--><!-- 根据姓名查询某一个学生是否存在 --><select id="SelectStudent" resultType="com.po.Student"> select * from student where name=#{0}</select><!-- 查询表中所有学生信息 --><select id="SelectStudentList" resultType="com.po.Student"> select * from student </select><!-- 根据姓名和年龄,插入新信息 --><insert id="InsertStudent"> insert into student(name,age) values(#{0},#{1})</insert><!-- 根据传入id删除信息 --><delete id="DeleteStudent"> delete from student where id=#{0}</delete><!-- 根据名字更改年龄 --><update id="UpdateStudent"> update student set age=#{1} where name=#{0}</update></mapper>
在src文件加下创建conf.xml用来配置数据库连接和注册xml映射文件
conf.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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置数据库连接信息 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> <property name="username" value="root" /> <property name="password" value="960404" /> </dataSource> </environment> </environments> <mappers> <!-- 注册StudentMapper.xml文件, StudentMapper.xml位于com.mapping这个包下,所以resource写成com.mapping--> <mapper resource="com.mapping"/> </mappers> </configuration>
在src下创建test.java进行测试:
import java.io.InputStream;import java.util.List;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.mapping.StudentMapper;import com.po.Student;public class test { public static void main(String[] args) { //mybatis的配置文件 String resource = "conf.xml"; //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件) InputStream is = test.class.getClassLoader().getResourceAsStream(resource); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件) //Reader reader = Resources.getResourceAsReader(resource); //构建sqlSession的工厂 //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); //创建能执行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); StudentMapper mapper=session.getMapper(StudentMapper.class);//获取对应的接口 //接下来就是调用接口的方法来调用映射的sql的语句 mapper.InsertStudent("宝贝",20);//插入一条信息 mapper.InsertStudent("小宝贝",21);//插入一条信息 mapper.InsertStudent("么么哒小宝贝",22);//插入一条信息 List<Student>list=mapper.SelectStudentList(); System.out.println("---------------添加信息后-------------"); for (Student s:list) System.out.println(s.getId()+" "+s.getName()+" "+s.getAge()); Student student=mapper.SelectStudent("宝贝"); System.out.println("---------------查找宝贝信息------------"); System.out.println(student.getId()+" "+student.getName()+" "+student.getAge()); mapper.DeleteStudent(1);//将编号为1的删除 System.out.println("--------------删除信息后---------------"); list=mapper.SelectStudentList(); for (Student s:list) System.out.println(s.getId()+" "+s.getName()+" "+s.getAge()); mapper.UpdateStudent("宝贝",21);//根据名字修改年龄 System.out.println("--------------更新信息后---------------"); list=mapper.SelectStudentList(); for (Student s:list) System.out.println(s.getId()+" "+s.getName()+" "+s.getAge()); System.out.println("----------这时候数据库是没有更新的,需要提交事务------"); session.commit(); System.out.println("----------数据库信息已更新,快看看吧---------------"); session.close(); }}
运行结果:
---------------添加信息后-------------1 宝贝 202 小宝贝 213 么么哒小宝贝 22---------------查找宝贝信息------------1 宝贝 20--------------删除信息后---------------2 小宝贝 213 么么哒小宝贝 22--------------更新信息后---------------2 小宝贝 223 么么哒小宝贝 22----------这时候数据库是没有更新的,需要提交事务----------------数据库信息已更新,快看看吧---------------
阅读全文
0 0
- mybatis的简单实例
- Spring+SpringMVC+Mybatis 简单的整合实例
- mybatis:一个最简单的实例
- mybatis复杂应用的简单实例
- ibatis(mybatis)简单实例
- MyBatis 简单实例
- mybatis 简单实例
- mybatis 框架简单实例
- mybatis简单实例
- MyBatis简单实例
- mybatis简单实例
- mybatis简单入门实例
- Spring + Springmvc + myBatis 简单实例
- Spring+SpringMVC+mybatis简单实例
- Mybatis入门最简单实例
- Mybatis简单存储过程实例
- mybatis学习一(最简单的实例)
- spring mvc 和 mybatis整合,简单的入门实例
- 大话数据结构(四)——双向链表的java实现
- linux VLAN配置(vconfig)
- Java冒泡排序与快速排序
- 蓝桥杯java第六届决赛第一题--分机号
- nginx+tomcat搭建负载均衡集群
- mybatis的简单实例
- Google C++ Style <待续>
- OJ注册界面实现版
- j2ee-项目常用组件
- BZOJ1176: [Balkan2007]Mokia
- 实现单例模式的四种方式
- Java,PL/SQL调用 ORACLE存储函数以及存储过程
- 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
- Servlet学习