Mybatis基于注解的方式访问数据库

1. 使用方式:在Service层直接调用

 1 package com.disappearwind.service;
 2
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.stereotype.Repository;
 5 import org.springframework.stereotype.Service;
 6
 7 import com.disappearwind.mapper.UserInfoMapper;
 8 import com.disappearwind.model.UserInfo;
 9
10
11 /**
12  * 用户service
13  *
14  */
15 @Service
16 @Repository
17 public class UserInfoService{
18
19     @Autowired
20     private UserInfoMapper userInfoMapper;
21
22      public UserInfo selectByPrimaryKey(Integer id){
23          return userInfoMapper.selectByPrimaryKey(id);
24      }
25 }

UserInfoService

2. Mapper层申明

1 package com.disappearwind.mapper;
2
3 import com.disappearwind.model.UserInfo;
4
5 public interface UserInfoMapper {
6     UserInfo selectByPrimaryKey(Integer id);
7 }

UserInfoMapper

3. mpper.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
 4 <mapper namespace="com.disappearwind.mapper.UserInfoMapper" >
 5
 6   <resultMap id="BaseResultMap" type="com.disappearwind.model.UserInfo">
 7         <id column="UserInfoID" property="userinfoid" jdbcType="INTEGER" />
 8         <result column="Name" property="username" jdbcType="VARCHAR" />
 9         <result column="Phone" property="phone" jdbcType="CHAR" />
10         <result column="Pwd" property="pwd" jdbcType="CHAR" />
11     </resultMap>
12
13      <sql id="Base_Column_List">
14         UserInfoID, Name, Type, TypeRemark, HeadUrl,BigImgUrl,GreatImgUrl,
15         NickName, Sex, Status,Labels, StoryCount,
16         FriendCount, FollowerCount, FavouriteCount, HotNum,
17         CreateDate,Description
18     </sql>
19
20   <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
21     select
22     <include refid="Base_Column_List" />
23     from userinfo
24     where UserInfoID = #{userinfoid,jdbcType=INTEGER}
25   </select>
26
27 </mapper>

UserInfoMapper.xml

4. 实体model层

 1 package com.disappearwind.model;
 2
 3 public class UserInfo {
 4     private Integer userinfoid;
 5
 6     private String username;
 7
 8     private String phone;
 9
10     private String pwd;
11
12     public Integer getUserinfoid() {
13         return userinfoid;
14     }
15
16     public void setUserinfoid(Integer userinfoid) {
17         this.userinfoid = userinfoid;
18     }
19
20     public String getUsername() {
21         return username;
22     }
23
24     public void setUsername(String username) {
25         this.username = username;
26     }
27
28     public String getPhone() {
29         return phone;
30     }
31
32     public void setPhone(String phone) {
33         this.phone = phone;
34     }
35
36     public String getPwd() {
37         return pwd;
38     }
39
40     public void setPwd(String pwd) {
41         this.pwd = pwd;
42     }
43
44     public UserInfo() {
45     }
46 }

UserInfo

5. SpringMVC配置

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
 5     xmlns:aop="http://www.springframework.org/schema/aop"
 6     xsi:schemaLocation="
 7         http://www.springframework.org/schema/beans
 8         http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
 9         http://www.springframework.org/schema/context
10         http://www.springframework.org/schema/context/spring-context-4.0.xsd
11         http://www.springframework.org/schema/aop
12         http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
13         http://www.springframework.org/schema/tx
14         http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
15         ">
16     <context:component-scan base-package="com.disappearwind.*" />
17 </beans>

context.xml

注意:context.xml的位置在web.xml中的如下配置节配置

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:context.xml</param-value>
</context-param>

用此方案的好处:省得写DAO层,只要Mapper层的方法申明和mapper.xml的方法申明保持一致,并且文件名也保持一致(UserInfoMapper.java和UserInfoMapper.xml)就能顺利的访问

时间: 2024-11-06 03:37:49

Mybatis基于注解的方式访问数据库的相关文章

Spring4学习笔记-AOP(基于注解的方式)

1.加入jar包 com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar commons-logging-1.1.3.jar spring-aop-4.1.0.RELEASE.jar spring-aspects-4.1.0.RELEASE.jar spring-beans-4.1.0.RELEASE.jar spring-context-4.1.0.RELE

srping-data学习笔记一(传统方式访问数据库实现和弊端分析)

spring-data是一系列项目的集合,涵盖访问关系型.非关系型等各种数据源的子项目 spring data jpa 关系型 spring data mongo db spring data redis spring data solr 全文检索,基于lucene 其他 使用原始JDBC方式操作数据库 1)创建Maven项目 maven工程的目录结构 添加依赖 <dependency> <groupId>mysql</groupId> <artifactId&g

ADO.NET 连接方式和非链接方式访问数据库

//连接方式访问数据库的主要步骤 1.创建连接对象(l链接字符串) 2.创建命令对象(设置Command对象的几个属性值) 3.打开连接 4.发送命令 5.处理数据 6.关闭连接 //非链接方式访问数据库 1/创建连接对象 2.创建数据适配器对象 3.打开连接 4.发送命令 5.关闭连接

非链接方式访问数据库--查询的数据集用Dataset来存储。

private void Button_Click_1(object sender, RoutedEventArgs e) { //非链接方式访问数据库, //1创建连接对象(连接字符串) using (SqlConnection conn = new SqlConnection(SQLHelper.ConnectionString)) { //2.创建数据适配器对象 using (SqlDataAdapter sda = new SqlDataAdapter("select * from St

基于注解的方式管理Bean

--------------------siwuxie095 基于注解的方式管理 Bean (一)准备 1.注解,可以理解为代码中的特殊标记,使用注解可以帮助完成功能 2.注解写法:@注解名称(属性名称="属性值") 3.注解可以使用在类上面.方法上面.属性上面 4.注解可以替代配置文件来管理 Bean,但不可能完全脱离配置 文件,仍然需要在配置文件中做少许配置 5.创建 Spring 配置文件,并引入 XML 约束 spring-beans-4.3.xsd 和 spring-cont

Mybatis基于注解开启使用二级缓存

关于Mybatis的一级缓存和二级缓存的概念以及理解可以参照前面文章的介绍.前文连接:https://www.cnblogs.com/hopeofthevillage/p/11427438.html,上文中二级缓存使用的是xml方式的实现,本文主要是补充一下Mybatis中基于注解的二级缓存的开启使用方法. 1.在Mybatis的配置文件中开启二级缓存 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYP

ASP.NET MVC- EF返回连接池用ADO.NET方式访问数据库

用习惯了ADO.NET的方式去访问数据库,虽然ADO.NET写的代码没有EF简洁,可是也并不麻烦.而且EF在进行多表查询的那种方式是,EF需要先去数据库里定义外键,再进去一次代码生成,然后才能用INCLUDE方法进行多表关联查询.我不太喜欢那样,还不如老老实实写做SQL语句. 所以ADO.NET 不能完成不用掉.那么怎么将EF和ADO.NET结合. 其实很简单,只要将EF的连接池返回成ADO.NET的SQLCONNECTION.然后就可以用ADO.NET的方式来写了. protected voi

php-面向对象的方式访问数据库

<?php //面向对象访问数据库 //造对象 $dx=new MySQLi("localhost","root","123","nation"); //判断连接是否成功 /*if(mysqli_connnect_error()) { echo "连接失败"; exit(); //die("连接失败"); }*/ !mysqli_connect_error() or die(&qu

Mybatis 基于注解Mapper源码分析

目前Mybatis除了可以通过XML配置SQL外还可以通过注解的形式配置SQL,本文中主要介绍了Mybatis是如何处理注解SQL映射的,通过源码分析处理过程 XML配置 <configuration> <settings> <setting name="defaultExecutorType" value="SIMPLE"/> <setting name="useGeneratedKeys" value