Mybatis的简单示例

首先新建一个JavaWeb项目并导入mybatis依赖的jar包,同时Mybatis是对数据库的操作所以我们需要在数据库中新建一个表user用来演示。

新建完表之后我们还需要建立相对应的实体类User.java并添加set和get方法:

 1 public class User {
 2     private String username;
 3     private String password;
 4     private int age;
 5     public String getUsername() {
 6         return username;
 7     }
 8     public void setUsername(String username) {
 9         this.username = username;
10     }
11     public String getPassword() {
12         return password;
13     }
14     public void setPassword(String password) {
15         this.password = password;
16     }
17     public int getAge() {
18         return age;
19     }
20     public void setAge(int age) {
21         this.age = age;
22     }
23 }

在Mybatis中我们需要建立一个与实体类相对应的映射文件userMapper.xml:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名)
 4  -->
 5 <mapper namespace="com.mybatis.mapping.userMapper">
 6     <!-- 在select标签中编写查询的SQL语句,id属性值必须是唯一的
 7     使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
 8     -->
 9     <!--
10         根据username查询得到一个user对象
11      -->
12     <select id="getUser" parameterType="java.lang.String"
13         resultType="com.mybatis.po.User">
14         select * from user where username=#{username}
15     </select>
16
17        <delete id="deleteUser" parameterType="java.lang.String">
18         delete from user where username=#{username}
19     </delete>
20 </mapper>

最后我们需要在src下新建一个Mybatis与数据库连接的配置文件config.xml,并将上面的userMapper.xml导入,代码如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 3 <configuration>
 4     <environments default="development">
 5         <environment id="development">
 6             <transactionManager type="JDBC" />
 7             <!-- 配置数据库连接信息 -->
 8             <dataSource type="POOLED">
 9                 <property name="driver" value="com.mysql.jdbc.Driver" />
10                 <property name="url" value="jdbc:mysql://localhost:3306/test" />
11                 <property name="username" value="root" />
12                 <property name="password" value="" />
13             </dataSource>
14         </environment>
15     </environments>
16      <mappers>
17         <!-- 注册userMapper.xml文件,resource为userMapper.xml所在目录-->
18          <mapper resource="com/mybatis/mapping/userMapper.xml"/>
19      </mappers>
20 </configuration>

这里的配置数据库连接信息和Hibernate差别不是很大,现在我们新建一个Test类来测试一下:

 1 public class Test {
 2
 3     public static void main(String[] args) throws IOException {
 4         //mybatis的配置文件
 5         String resource = "config.xml";
 6         //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
 7         InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);
 8         //构建sqlSession的工厂
 9         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
10         //打开session
11         SqlSession session = sessionFactory.openSession();
12         /**
13          * 映射sql的标识字符串
14          *com.mybatis.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
15          * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
16          */
17         String statement = "com.mybatis.mapping.userMapper.getUser";//映射sql的标识字符串
18         //执行查询返回一个唯一user对象的sql
19         User user = session.selectOne(statement,"username1");
20         System.out.println(user.getUsername());
21         String statement2="com.mybatis.mapping.userMapper.deleteUser";
22         session.delete(statement2,user);
23     }
24 }

执行selectOne方法会返回一个user对象(如果想要查询多条数据可以用selectList,此方法会返回List<User>的对象),我们在控制台输出user对象的username.执行delete方法可以直接将对象对应的一条数据删除,可以根据数据库中的变化来判断是否执行成功。下面是我的项目的目录,大家可以参考一下:

以上就是Mybatis的一个简单示例,当然在userMapper.xml中我们还可以用OGNL生成动态sql语句,感兴趣的可以自己研究一下。

时间: 2024-11-05 12:08:24

Mybatis的简单示例的相关文章

AMQP消息队列之RabbitMQ简单示例

前面一篇文章讲了如何快速搭建一个ActiveMQ的示例程序,ActiveMQ是JMS的实现,那这篇文章就再看下另外一种消息队列AMQP的代表实现RabbitMQ的简单示例吧.在具体讲解之前,先通过一个图来概览下: 1.添加Maven依赖 <!-- rabbitmq begin --> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit

HMM的维特比算法简单示例

今天读了一位大牛的关于HMM的技术博客,读完之后,写了一个关于维特比算法的简单示例,用scala和java语言混合编写的.现在上传之. package com.txq.hmm import java.utilimport scala.collection._ /** * HMM维特比算法,根据显示状态链条估计隐式链条 * @param states 隐式states * @param observations 显式states * @param start_probability 初始概率向量

spring-servlet.xml简单示例

spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 1 <!-- springMVC简单配置 --> 2 <?xml version="1.0" encoding="UTF-8"?> 3 <beans xmlns="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://w

关于Ajax实现的简单示例

一.代码示例 关于Ajax的基本概念(包括XMLHttpRequest对象及其相关方法属性)移步这里(w3school中文版)学习了解. <!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>使用Ajax异步加载数据</title> <script type = "text/javasc

【转】bind简单示例

bind简单示例代码 namespace { class placeholder_ {}; placeholder_ __1; } template <typename R, typename T, typename Arg> class simple_bind_t { private: typedef R (T::*F)(Arg); F f_; T* t_; Arg& a_; public: simple_bind_t(F f, T* t, Arg &a) : f_(f),

SQL左连接、右连接和内连接的简单示例

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录: right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: inner join(等值连接) 只返回两个表中联结字段相等的行:举例如下: -------------------------------------------- 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录

Backbone简单示例

要的资源: <script type="text/javascript" src="../dep/underscore-1.6.0.min.js"></script> <script type="text/javascript" src="../dep/jquery-1.11.1.min.js"></script> <script type="text/javas

动态网站开发技术学习2:VS 2010制作作第一个简单示例网站

制作一个简单示例网站的步骤: 一,启动VS 2010开发环境,选择菜单中的"文件",选择其中的"新建",再选择"网站",会弹出"新建网站"对话框. 二,在"新建网站"的对话框,在"已安装模板"中选择Visual C#,右侧的选择"ASP.NET网站"选项,单击"新建网 站"中的"文件系统",下拉菜单中有"文件系统&qu

简单示例

下面是一个简单示例,当阀切换至自动模式时,会自动向储罐中补水,到达设定值后自动关闭.当储罐中水位到达设定值后水泵自动开启,水位低时联锁关闭. 上图分别显示了阀门和水泵操作面板 上图显示了水泵的联锁信息 上图是参数设置 上图显示了水位曲线