【Mybatis】Helloworld
来源:互联网 发布:excel怎样数据保护 编辑:程序博客网 时间:2024/05/16 07:05
Mybatis和Hibernate一样是一个Nosql工具,什么是Nosql?原本,应该在Java中写sql语句,才能对Mysql等数据库进行增删改查,但是经过Nosql工具之后,在Java你只需要一个类方法就能对数据库进行增删改查,当然原本sql的语句还是要写的,只是像Mybatis和Hibernate这些Nosql工具将sql语句和java代码分离开来。
且不论这种工具到底好不好,甚至个人感觉有点没事找事,然而,现在的企业好,业内的java ee公司好,都喜欢用这种框架,所以,你基本必须要会。
一、Mybatis下载、配置
Mybatis和网页其实并没有任何的关系,它只是处理java和数据库之间交流所使用的。所以,利用一个java工程,而非eclipse里面的Dynamic Web Project,就能说明这个问题。
先贴上最终完成的Mybatis Helloworld的项目结构。
你首先需要两个jar,一个是连接Mysql必须的jar,这里以Mysql做例子,Orcale等数据库则换成相应的jar包即可,可以到Mysql的官网下载:https://dev.mysql.com/downloads/connector/j/,下载之后取走其中的mysql-connector-java-5.1.44-bin.jar到你的工程目录,一般在工程目录新建一个lib,放这些包。
然后下载Mybatis,http://www.softpedia.com/get/Programming/Other-Programming-Files/MyBatis.shtml,同样取走里面的核心jar,放到你的工程目录的lib下。
之后在eclipse中设置你这个java项目加载这些lib,Mybatis的配置就正式完成了。
二、Mybatis的Helloworld
目标是将以下的这张已经被举了无数次个栗子废表User里面的数据:
在Java的控制台打印出来,当然,你都会打印了,将数据组织到spring mvc或者strust2也就是这个意思了。
1、首先,先在src目录下新建3个包test.dao,test.entity,test.mapper,src是源代码的意思。
然后在test.entity下新建如下的User.java:
package test.entity;public class User {private Integer id;private String username;private String password;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;} }
这堆漫长而无聊的getter和setter完全可以在写完3个变量private Integer id;private String username;private String password;利用alt+shift+s让eclipse自己生成,这里在java三个变量对应数据库mysql里面的三个字段。
2、之后在根目录完成Mybatis配置的configuration.xml,这个文件囊括了整个Mybatis的信息,以后需要Mybatis沟通数据库的其它表和java工程的联系,在这个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><typeAliases><typeAlias type="test.entity.User" alias="User" /><!-- 指明有一个实体User,其配置文件的java文件是test.entity下的User --></typeAliases><!-- 写明关于mysql的连接信息 --><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/test" /><property name="username" value="root" /><property name="password" value="root" /></dataSource></environment></environments><mappers><mapper resource="test/mapper/User.xml" /><!-- 指明在user这个表中所包含常用sql方法,test/mapper/User.xml是一个指明java方法和sql语法联系的xml文件 --></mappers></configuration>
3、之后在test.mapper包下新建一个User.xml,这个文件指明了sql语句和java方法的对应关系
<?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"><!-- 指明select * from user where id=#{id}这条sql对应test.dao下的UserDao.java下的findById方法 --><!-- 同时findById的返回是一个User类型的类 --><mapper namespace="test.dao.UserDao"><select id="findById" parameterType="HashMap" resultType="User">select * from user where id=#{id}</select></mapper>
4、然后在test.dao下新建一个UserDao.java,这个文件写一个接口就行。
package test.dao;import test.entity.User;public interface UserDao {public User findById(Integer id);}
经历了上面四个步骤,Mybatis的配置就完成了,在src根目录下新建一个MybatisHelloworld.java就能看到最终效果了
import java.io.IOException;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 test.dao.UserDao;import test.entity.User;public class MybatisHelloworld {/* mybatis连接数据库的方法,未来可以靠spring写在xml让工程一上来就走这段代码,直接完成注入 */private static SqlSessionFactory getSessionFactory() {SqlSessionFactory sessionFactory = null;String resource = "configuration.xml";try {sessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resource));} catch (IOException e) {e.printStackTrace();}return sessionFactory;}public static void main(String[] args) {SqlSession sqlSession = getSessionFactory().openSession();// 连接数据库UserDao userDao = sqlSession.getMapper(UserDao.class);// Nosql直接得到一个UserDaoUser user = userDao.findById(1);// 直接可以利用getter setter读写数据库里面的数据System.out.println("id为1的username=" + user.getUsername());System.out.println("id为1的password=" + user.getPassword());}}
- MyBatis HelloWorld
- mybatis -- helloworld
- Mybatis HelloWorld
- MyBatis--HelloWorld
- MyBatis HelloWorld
- 【Mybatis】Helloworld
- MyBatis HelloWorld
- Mybatis-HelloWorld
- mybatis的HelloWorld
- HelloWorld之MyBatis
- mybatis 入门HelloWorld
- mybatis的helloworld版
- [J2EE]MyBatis HelloWorld
- Mybatis最入门---HelloWorld
- mybatis第一个helloworld
- SpringMVC MyBatis 集成 HelloWorld
- Mybatis最入门---HelloWorld
- 初学MyBatis之HelloWorld
- 对_.template函数的理解
- 控制单据表体的【列名】变化
- Flex 弹性布局使用及说明
- 69. Sqrt(x)
- Linux安装tomcat
- 【Mybatis】Helloworld
- swift (3.3)UICollectionView 的 SectionHeader问题
- npm --save 和 npm --save -dev的区别
- Base64编码实现二---使用org.apache.tomcat.util.codec.binary.Base64实现Base64
- 生活中与现实中的字体应用体验俯拾皆是...
- Java关键字transient和volatile
- JPG文件结构分析
- 表体某个页签的字段名字怎么动态改变
- Linux下nfs+rpcbind实现服务器之间的文件共享(mount 挂载)