java-后台-Hibernate–jdbc-Mybatis介绍-jdbc

1.服务器安装mysql

解压安装后:找到mysql安装目录,将其配置文件my.default.ini改名为my.ini,并且将my.ini移至bin目录下。

启动命令行,将目录切换到mysql安装目录的bin目录下。

接下来,在命令行执行命令:mysqld –initialize –user=mysql –console

注意,上一个步骤会获得一个临时密码,需要记录,之后会用到

接下来在控制台以命令行输入: mysqld –install,进行安装服务操作。

之后,在任务管理器找到“服务”,启动其中的MYSQL服务即可。

之后,输入命令行mysql -uroot -p,利用之前的临时密码输入即可登录数据库成功。

修改临时密码,设置密码:mysqladmin -u USER -p password PASSWORD,注意USER和PASSWORD为自己定义的数值。

2.安装mysql workbench ,建databases,建表

3.java工程使用Mybatis jdbc连接databases,操作table。  或者

hibernate-jdbc去操作数据库

Hibernate–jdbc

4.java长连接服务websocket提供客户端接口。—–推荐使用

5.或者使用Strut2+jsp提供接口——不推荐

6.或者使用Spring提供接口———推荐使用

 

 

struts2+spring+mybatis 或 spring+springmvc+mybatis

————————————————————————————————————-

Spring boot系列文章:

http://www.ityouknow.com/spring-boot.html

http://blog.csdn.net/tony308001970/article/details/74999680

spring boot使用swagger生成apidoc:

https://my.oschina.net/wangnian/blog/666017

————————————————————————————————————-

Struts2核心是拦截器,原来拦截处理用户请求jsp:

http://www.cnblogs.com/xing901022/p/3961661.html

http://blog.csdn.net/itmyhome1990/article/details/36186059

http://blog.csdn.net/qq_22028771/article/details/51498982

http://blog.csdn.net/u012131769/article/details/46390559

http://www.cnblogs.com/vast-yj1234/p/5351507.html

 

————————————————————————————————————-

 

spring微服务

http://www.cnblogs.com/tzyy/p/4837701.html

spring boot的helloworld:

http://blog.csdn.net/linabc123000/article/details/68954236

jdk错误解决:

http://blog.csdn.net/lslk9898/article/details/73836745

修改spring boot默认端口:

http://blog.csdn.net/whh743/article/details/65444391

基于spring boot的天气预报服务:

http://blog.csdn.net/gebitan505/article/details/77897344

spring的RESTFul使用RestController:

http://blog.csdn.net/victor_cindy1/article/details/52086935

spring boot的RESTFul:

http://blog.csdn.net/superpeepi_csdn/article/details/71634524

前端框架bootstrap结合spring:

https://waylau.gitbooks.io/spring-boot-tutorial/docs/bootstrap-integration.html

bootstrap属于下面后端程序员写前端推荐框架之一。

 

https://spring.io/tools/sts

https://github.com/waylau/spring-boot-tutorial/blob/master/SUMMARY.md

 


后端程序员写前端

https://www.zhihu.com/question/37946473/answer/84852303

 

 

安装Visual Studio 2010以及QT5.0.0

1.dotNetFx45_Full_setup.exe

2.vc_redist.x64_2015.exe

3.NDP46-KB3045557-x86-x64-AllOS-ENU.exe

4.cn_visual_studio_2010_ultimate_web_installer_x86_535094.exe

安装vs2010完成后激活:再次运行cn_visual_studio_2010_ultimate_web_installer_x86_535094.exe

进入维护模式,

在向导中输入序列号

YCFHQ-9DWCY-DKV88-T2TMH-G7BHP

确认激活。

5.qt-windows-opensource-5.0.0-msvc2010_32-x86-offline.exe

6.qt-vs-addin-1.2.4-opensource.exe

7.配置VS2010的Qt开发环境:

进入vs2010, 选择Qt5菜单,Qt Options,点Add,添加Qt的安装目录和版本名字,然后选择OK即可

 

http://blog.csdn.net/aboy123/article/details/10085635

 

 

 

一、Hibernate概述

(一)什么是Hibernate?

hibernate核心内容是ORM(关系对象模型)。可以将对象自动的生成数据库中的信息,使得开发更加的面向对象。这样作为程序员就可以使用面向对象的思想来操作数据库,而不用关心繁琐的JDBC。所以,Hibernate处于三层架构中的D层(持久层)。

(二)使用Hibernate的优点

1、Hibernate可以使用在Java的任何项目中,不一定非要使用在Java web项目中。因为Hibernate不需要类似于tomact这些容器的支持,可以直接通过一个main方法进行测试

2、通过下面的实例,可以发现使用Hibernate可以大大减少代码量。

3、由于使用了Hibernate,代码中不涉及具体的JDBC语句,所以就方便了代码的可移植性。

二、Hibernate开发的环境搭建

(一)Hibernate的环境搭建非常简单,只需要引入Hibernate核心包(单击下载)以及Hibernate依赖包(单击下载)即可。
(二)加入数据库驱动。下面的例子中主要是采用Mysql数据库来演示的,所以在这里引入MysqL的JDBC驱动(点击下载)。
(三)提供核心配置文件hibernate.cfg.xml文件(在src文件夹下即可)。其中的配置如下(针对mysql)

[html] view plain copy

  1. <!DOCTYPE hibernate-configuration PUBLIC
  2.     “-//Hibernate/Hibernate Configuration DTD 3.0//EN”
  3.     “http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”>
  4. <hibernate-configuration>
  5.     <session-factory >
  6.         <!– mysql数据库驱动 –>
  7.         <property name=“hibernate.connection.driver_class”>com.mysql.jdbc.Driver</property>
  8.         <!– mysql数据库名称 –>
  9.         <property name=“hibernate.connection.url”>jdbc:mysql://localhost:3306/hibernate_first</property>
  10.         <!– 数据库的登陆用户名 –>
  11.         <property name=“hibernate.connection.username”>root</property>
  12.         <!– 数据库的登陆密码 –>
  13.         <property name=“hibernate.connection.password”>root</property>
  14.         <!– 方言:为每一种数据库提供适配器,方便转换 –>
  15.         <property name=“hibernate.dialect”>org.hibernate.dialect.MySQLDialect</property>
  16.     </session-factory>
  17. </hibernate-configuration>

三、HIbernate第一个实例

该实例的目录结构如下
说明:最后一个HIBERNATE3里面包含了所有的需要引用的jar包
1、新建一个普通的java项目,按照上面的步骤引入相关的jar包和配置文件
2、建立User实体类

[java] view plain copy

  1. import java.util.Date;
  2. public class User {
  3.     private String id;
  4.     private String username;
  5.     private String password;
  6.     private Date createTime;
  7.     private Date expireTime;
  8.     public String getId() {
  9.         return id;
  10.     }
  11.     public void setId(String id) {
  12.         this.id = id;
  13.     }
  14.     public String getUsername() {
  15.         return username;
  16.     }
  17.     public void setUsername(String userName) {
  18.         this.username = userName;
  19.     }
  20.     public String getPassword() {
  21.         return password;
  22.     }
  23.     public void setPassword(String password) {
  24.         this.password = password;
  25.     }
  26.     public Date getCreateTime() {
  27.         return createTime;
  28.     }
  29.     public void setCreateTime(Date createTime) {
  30.         this.createTime = createTime;
  31.     }
  32.     public Date getExpireTime() {
  33.         return expireTime;
  34.     }
  35.     public void setExpireTime(Date expireTime) {
  36.         this.expireTime = expireTime;
  37.     }
  38. }
2、提供User.hbm.xml文件,完成实体类的映射

[html] view plain copy

  1. <?xml version=“1.0”?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3.     “-//Hibernate/Hibernate Mapping DTD 3.0//EN”
  4.     “http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”>
  5. <hibernate-mapping>
  6.     <class name=“com.example.hibernate.User”>
  7.         <id name=“id”>
  8.             <generator class=“uuid”/>
  9.         </id>
  10.         <property name=“username”/>
  11.         <property name=“password”/>
  12.         <property name=“createTime”/>
  13.         <property name=“expireTime”/>
  14.     </class>
  15. </hibernate-mapping>

其中的property标签是将要生成是数据库表中的字段,在这里不用关心各个字段是什么类型的。因为Hibernate会根据上面的实体类中属性的类型来决定将来表中字段的类型

3、配置hibernate.cfg.xml文件

[html] view plain copy

  1. <hibernate-configuration>
  2.     <session-factory >
  3.         <!– mysql数据库驱动 –>
  4.         <property name=“hibernate.connection.driver_class”>com.mysql.jdbc.Driver</property>
  5.         <!– mysql数据库名称 –>
  6.         <property name=“hibernate.connection.url”>jdbc:mysql://localhost:3306/hibernate_first</property>
  7.         <!– 数据库的登陆用户名 –>
  8.         <property name=“hibernate.connection.username”>root</property>
  9.         <!– 数据库的登陆密码 –>
  10.         <property name=“hibernate.connection.password”>root</property>
  11.         <!– 方言:为每一种数据库提供适配器,方便转换 –>
  12.         <property name=“hibernate.dialect”>org.hibernate.dialect.MySQLDialect</property>
  13.         <span style=“color:#ff0000;”><mapping resource=“com/example/hibernate/User.hbm.xml”/></span>
  14.     </session-factory>
  15. </hibernate-configuration>

注意:必须是“/”而不能是“.”。

4、生成表:编写工具类ExoprtDB.java,将hbm生成ddl

[java] view plain copy

  1. import org.hibernate.cfg.Configuration;
  2. import org.hibernate.tool.hbm2ddl.SchemaExport;
  3. /**
  4.  * 将hbm生成ddl
  5.  * @author BCH
  6.  *
  7.  */
  8. public class ExoprtDB {
  9.     public static void main(String[] args) {
  10.         //默认读取hibernate.cfg.xml文件
  11.         Configuration cfr = new Configuration().configure();
  12.         SchemaExport export = new SchemaExport(cfr);
  13.         export.create(truetrue);
  14.     }
  15. }

到这里就可以生成User表了,但是如果直接运行ExoprtDB.java文件是不能生成User表的。因为在mysql数据中还没有建立数据库Hibernate-first。所以在mysql控制台中通过create database hibernate-first; use hibernate-first;之后再执行ExoprtDB.java文件就可以生成表了。

5、向表中添加数据

[java] view plain copy

  1. import java.util.Date;
  2. import org.hibernate.Session;
  3. import org.hibernate.SessionFactory;
  4. import org.hibernate.cfg.Configuration;
  5. public class Client {
  6.     public static void main(String[] args) {
  7.         //读取配置文件
  8.         Configuration cfg = new Configuration().configure();
  9.         SessionFactory factory = cfg.buildSessionFactory();
  10.         Session session = null;
  11.         try{
  12.             session = factory.openSession();
  13.             //开启事务
  14.             session.beginTransaction();
  15.             User user = new User();
  16.             user.setUsername(“用户名”);
  17.             user.setPassword(“123”);
  18.             user.setCreateTime(new Date());
  19.             user.setExpireTime(new Date());
  20.             session.save(user);
  21.             //提交事务
  22.             session.getTransaction().commit();
  23.         }catch(Exception e){
  24.             e.printStackTrace();
  25.             //回滚事务
  26.             session.getTransaction().rollback();
  27.         }finally{
  28.             if(session != null){
  29.                 if(session.isOpen()){
  30.                     //关闭session
  31.                     session.close();
  32.                 }
  33.             }
  34.         }
  35.     }
  36. }
执行该java文件就可以完成向表中增加数据了,效果如下

(四)总结

通过上面的代码我们可以看出,在代码中没有涉及到任何有关JDBC的代码,作为开发人员只需要写好相应的实体类,然后通过配置就可以实现了表的建立以及向表中实现数据的插入。
在代码中有许多Hibernate的核心对象,例如Configuration、SessionFactory、Session等等。这些内容将在以后介绍。

 

 

http://www.cnblogs.com/oumyye/p/4668721.html#3758875

 

一、Mybatis介绍

MyBatis是一款一流的支持自定义SQL、存储过程和高级映射的持久化框架。MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去设置参数和获取检索结果。MyBatis能够使用简单的XML格式或者注解进行来配置,能够映射基本数据元素、Map接口和POJOs(普通java对象)到数据库中的记录。

二、MyBatis工作流程

(1)加载配置并初始化
  触发条件:加载配置文件
  配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。
(2)接收调用请求
  触发条件:调用Mybatis提供的API
  传入参数:为SQL的ID和传入参数对象
  处理过程:将请求传递给下层的请求处理层进行处理。
(3)处理操作请求 触发条件:API接口层传递请求过来
  传入参数:为SQL的ID和传入参数对象
  处理过程:
  (A)根据SQL的ID查找对应的MappedStatement对象。
  (B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。
  (C)获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。
  (D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。
  (E)释放连接资源。
(4)返回处理结果将最终的处理结果返回。

orm工具的基本思想

无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:

  •  从配置文件(通常是XML配置文件中)得到 sessionfactory.
  •  由sessionfactory  产生 session
  •  在session 中完成对数据的增删改查和事务提交等.
  •  在用完之后关闭session 。
  •  在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。

功能架构

Mybatis的功能架构分为三层:
  1. API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
  2. 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
  3. 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。

多需要添加的驱动包:

下面进行快速入门:

目录如下:

实体类User

复制代码
package com.oumyye.model;

public class User {
    private String id;
    private String name;
    private  int age;
    public String getId() {
        return id;
    }
    public void setId(String 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;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
    }
    
}
复制代码

映射文件UserMapping.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.oumyye.mapping.UserMapping">
    <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复
    使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
    resultType="com.oumyye.model.User"就表示将查询结果封装成一个User类的对象返回
    User类就是users表所对应的实体类
    -->
    <!-- 
        根据id查询得到一个user对象
     -->
    <select id="getUser" parameterType="String" 
        resultType="com.oumyye.model.User">
        select * from user where id=#{id}
    </select>
</mapper>
复制代码

资源文件mybatis.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="root" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
       
        <mapper resource="com/oumyye/mapping/userMapping.xml"/>
     </mappers>
</configuration>
复制代码

测试类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package test;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import com.oumyye.model.User;
public class Tests {
    @Test
    public void test(){
        String resource = "mybatis.xml";
        //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
        InputStream is = Tests.class.getClassLoader().getResourceAsStream(resource);
        //构建sqlSession的工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
       
        SqlSession session = sessionFactory.openSession();
        /**
         * 映射sql的标识字符串,
         * com.oumyye.mapping.UserMapping是userMapper.xml文件中mapper标签的namespace属性的值,
         * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
         */
        String statement = "com.oumyye.mapping.UserMapping.getUser";//映射sql的标识字符串
        //执行查询返回一个唯一user对象的sql
        User user = session.selectOne(statement, "1123");
        System.out.println(user.toString());
    }
}

结果: