Linux

linux环境安装
一,vmware 虚拟机工具
1,网络模式
A,桥接:主机当网络桥梁,让主机内的虚拟机访问外网,主机和虚拟机IP是独立的
B,nat:适用于主机和虚拟机共享IP,通过同一IP访问外网
C,主机模式(host only)
二,linux系统安装
1,操作系统
A,常用的操作系统:windows系列,安卓,IO,linux系列等
B,按用途分类:普通版本和server版本
C,linux系列:主要用来做服务器,常用的red hat系列, centos就属于red hat系列
2,linux用户
安装和卸载软件都用超级管理员角色,root是拥有超级管理员角色的用户,用户可以有多个角色。
3,vmware-tools
A,简介:解决虚拟机与外部机器的交互(复制,粘贴)
B,安装:vmware -虚拟机-安装vmware-tools

安装步骤:
1,虚拟机-安装vmware-tools
2,把文件拖入桌面
3,解压文件
4,切换root帐号 安装程序:sudo vmware-tools-distrib/vmware-install.pl
5,重启:sudo shutdown -r now

4,linux目录
用户目录(/home):一个用户一个子目录,如zsc用户对应/home/zsc;如/home/zsc/桌面,是zsc用户自己的桌面
/ :根目录,等同于windows系统的盘
/bin:二进制命令,常用的ls等命令都在/bin下
/etc:系统的配置文件(环境变量,网络配置,用户信息等)位置
/usr:软件的默认安装位置
/dev:设备文件目录,如:/dev/cdrom 是光驱
/var:缓存文件与脱机文件
5,命令
A,目录命令:

查看当前命令行所在的目录位置:pwd
	~ :表示当前用户    等同于: /home/zsc
	../:上一级目录
切换目录:cd
	语法:cd 路径
	样例:切换到桌面    cd /home/zsc/桌面
	cd ~ :打开当前用户的主目录
	cd..	:返回上级目录
	cd -	:返回进入目录
	cd/	:打开根目录
查看目录下的文件列表:ls
	ls:查看当前目录下的子目录或者子文件
	ls 路径:查看任意一个目录下的子目录或子文件
	ls -l 路径:查看详细信息(不只是文件名) 等同于:ll
	ls -a	:查看所有文件(包括隐藏文件)
	ls -la :查看所有文件(包括隐藏文件)的详细信息
创建文件目录:mkdir
	语法:mkdir [参数] 目录名称
	参数:-m:设定文件的权限,后边可以跟权限标识
		  -p:帮助用户直接将所需要的目录递归建立起来
		  如:mkdir -p test/test1/test2
删除文件目录:rmdir
	语法:rmdir  [参数] 目录名称
	参数:-p:递归将所有层级目录都删除
删除文件或者目录:rm
	语法:rm  [参数] 文件或目录
	参数:-f:删除指定的文件
		  -i:互动模式,在删除前会询问使用者是否删除
		  -r:递归删除
复制文件或目录:cp
	语法:cp  [参数][目录1名称][目录2名称]      -复制目录1到目录2
	参数:-r:递归持续复制,用于目录的复制行为
		  -f:为强制的意思,当有重复或其他疑问时,不会询问使用都,强制复制
		  -i:覆盖既有目录之前先询问用户
		  -p:保存源文件和目录的属性
移动文件,修改文件名:mv
	同级目录移动,文件名不一样就是修改文件……
	不同目录移动,就 是移动文件。
	语法:mv  [参数] 文件1 文件2	-将文件1的名称更改为文件2 
	语法:mv  [参数] 目录1 目录2	-将目录1的文件移动到目录2
	参数:-b:若覆盖文件,则覆盖前先备份
		  -f:若已经存在目标文件,则强制覆盖
		  -i:若已经存在目标文件,则会询问是否覆盖
		  
解压和压缩:tar
	语法:tar -zxvf 压缩包路径 [-C 解压的位置]
	参数:z:表示解压的压缩包是zip性质的。
	      x:解压
	      v:显示解压的过程
	      f:file 或 full
	语法:tar -zcvf mydata.tar 被压缩的目录		# #压缩为mydata.tar
	参数:c:压缩

解压和压缩:zip
	压缩:
		语法:zip -r mydata.zip  被压缩的目录     #压缩为mydata.zip
		语法:zip -r mydata.zip  被压缩的目录1 被压缩的目录2
	解压:
		语法:unzip 压缩包路径 -d 解压的位置
		语法:unzip 压缩包路径   #直接解压到当前目录
		参数:-o:不必先询问用户,unzip执行后覆盖原有文件
		
重启:reboot	
	  	

B,文件命令:

创建文件:touch
	语法:touch 文件名称
查看,编辑文件命令:vi   (处于只读状态)
	如果文件已经存在,则直接打开文件;如果不存在,则打开一个全新的空文件
	vi命令的3种模式:
		1)命令模式
			L:光标移至屏幕最后一行
			space:光标右移一个字符
			backspace:光标左移一个字符
			N+:光标向上移动N行
			n+:光标向下移动n行
		2)输入模式
			按下a或i,文档切换到编辑状态
			dd:删除光标当前行
			ndd:删除n行
		3)末行模式
			如果完成编辑,按下ESC键切换到只读状态
			shift+“:”组合键进入末行模式
			:wq:保存并退出
			:q!:强制退出
			:s/字符串1/字符串2:将文件中出现的字符串1替换成字符串2
			:set nu:显示所有的行号
查看,编辑文件命令:cat 	(主要用于查看)
	显示文件的全部内容,文件大会翻屏显示,适合打开内容较少的文件,打开文件
	后,可以输入相应的内容,系统自动保存,ctrl+d组合键退出文件编辑
	语法:cat [参数] 文件名称
	参数:〉:创建并打开一个新的文件
查看文件开关内容命令:head
	语法:head[参数] [文件]
	参数:-n:显示的行数
		 默认:显示文件前10行数据
查看文件结尾内容命令:tail
	适用动态加载文件的内容(常用于查看日志文件)
	语法:tail[参数] 文件名称
	参数:-f:监视文件的增长,内容更新后,终端显示也将动态更新
		 -n Number:从倒数第Number行位置读取指定文件的全部内容

C,用户和用户组命令:
用户:简写:u,登陆用用户,一个用户一个对应的目录
用户组:简写:g,一个或多个用户按照不同应用规划成一组,用户必须在一个用户组中

切换用户:su
	语法:su 用户名
	样例:su root
退出当前登陆:exit
查看当前登陆用户的信息(uid,gid):id
	uid:是用户的唯一标识
	gid:是用户组的唯一标识
新建用户:useradd 
	语法:useradd [用户名]
	语法:useradd [-u] [用户名]
	参数:-u:用户id,最好500以上
修改密码:passwd
	语法:passwd 用户名
新建用户组:groupadd
	语法:groupadd 组名
新建用户并指定用户组:useradd -g
	语法:useradd -g  已有组名  新用户名
修改用户的用户组:usermod -g
	语法:usermod -g  已有组名  用户名
删除用户:userdel
	语法:userdel 用户名
	注意:如果用户登陆了不能删除;删除后用户文件目录还存在

D,系统命令:

清屏:clear
查看命令语法:man
	语法:man  命令
挂载命令:mnt
	语法:mnt [设备名称] [挂载点]
终止当前的操作:快捷键ctrl+z
查看进程命令:ps
	第一列表示开启进程的用户,第二列表示进程唯一标识PID,第三列表示父进程PPID。
	语法:ps [-ef |grep 进程名]
	参数: e:所有进程
		   f:进程的所有信息
		   |grep 进程名:相等于模糊查询
查看JAVA进程:jps
杀掉进程命令:kill
	语法:kill -9 [PID]
	参数:-9:强制杀掉进程
查看IP:ifconfig

E,权限命令:
linux系统中文件和目录都拥有对应的权限码(10位)

权限码:drwxr-xr-x
	第0位:表示是文件或者目录,-表示文件,d表示目录
	第1-3位:u(文件或目录拥有者的权限)
	第4-6位:g(拥有者所在用户组其他用户的权限)
	第7-9位:o(拥有者所在组以外的用户的权限)
	r:读权限,对应数字权限码4
	w:写权限,对应数字权限码2
	x:执行权限,对应数字权限码1
	-:没有权限,对应数字权限码0
修改权限:
	1)字母权限码
		语法:chmod [-r] g-w ~/test
		u:1-3位,拥有者权限
		g:4-6位,拥有者所在用户组其他用户的权限
		o:7-9位,拥有者所在组以外的用户的权限
		+:增加权限
		-:取消权限
		-r:表示目录
	2)数字权限码
		语法:chmod [-r]  数字权限码  文件目录
		样例:chmod 700 ~/test
修改文件拥有者:chown
	语法:chown [-R]  用户.用户组  被修改的文件或目录
	参数:-R:指定目录下所有目录或文件全部修改,不加只修改当前目录或文件

三,linux软件安装
1,概述:由于linux有多种系列,每种系列都有自己的推荐安装方式,所以将安装方式分为两种:一种通用的安装方式,一种是不同版本独有的安装方式。linux通用安装推荐rmp安装

2,yum安装(centos系列,在线安装):通过选择仓库来完成安装

查询yum仓库的软件:
	语法:yum list |grep 软件名    
查询yum仓库的软件所有信息(包括版本):
	语法:yum info 软件名
安装(root):
	语法:yum install -y 软件名
通过yum方式查看已安装的软件:
	语法:yum list installed [|grep 软件名]
	查看所有安装软件:yum list installed
通过yum方式卸载软件:
	语法:yum remove -y 软件名

3,tar安装(linux通用,离线安装):
1)下载一个tar安装包
2)解压到安装位置
3)配置
4)启动测试

1,JAVA JDK安装
	1)yum卸载已经安装的JDK
		查看:yum list installed|grep java
		卸载:yum remove -y 软件名
	2)先获取安装包
	3)解压到安装目录
	4)JDK配置环境变量(/etc/profile):
		打开:vi /etc/profile,在文档最后追加内容:
		export JAVA_HOME=/usr/local/java/jdk1.8.0_171
		export PATH=$PATH:$JAVA_HOME/bin
	5)生效环境变量:
		source /etc/profile
	6)测试:
		java -version
2,tomcat安装
	1)获取安装包
	2)解压到/home/用户/,产生tomat主目录,apache-tomcat-7.0.78
	3)tomcat主目录/bin文件夹下 执行启动和关闭
		启动:tomcat主目录/bin/startup.sh
		关闭:tomcat主目录/bin/shutdown.sh
	4)用火狐测试:http://localhost:8080/
3,mysql安装
	root用户操作:
	1)查看已安装mysql(rpm)
		语法:rpm -qa |grep -i mysql
		参数:q:查询
			  a:所有
	2)卸载
		语法:rpm -e 软件名
	3)获取安装包并解压
		语法:tar -xvf mysql-5.7.1*.tar 获取两个tar.gz文件
	4)解压mysql-5.7.1*.tar.gz到/usr/local/
	5)更改解压后的文件名为mysql
	6)在mysql目录中创建目录data
	7)新建用户组与用户
		用户组:mysql 用户:mysql
	8)更改mysql目录的拥有者为mysql
	
	以下mysql用户操作:
	9)初始化数据库,生成密码
		$>mysql主目录/bin/mysqld  --initialize --user mysql 
		--basedir=/usr/local/mysql  --datadir=/usr/local/mysql/data
		
	以下root用户操作:
	10)生成mysql服务(root)
		cp mysql主目录/support-files/mysql.server /etc/init.d/mysql4
		mysql4:自己取的名字
	11)服务设置为开机启动(root)
		$>chkconfig mysql4 on
	12)启动mysql服务(root)
		$>service mysql4 start
		
	以下mysql用户操作:
	13)利用临时密码登陆
		$>mysql主目录/bin/mysql -u root -p
	14)修改密码
		mysql>set password for root@localhost=password('123456');
	15)修改mysql root用户的访问作用域
		root默认只能localhost访问
		修改mysql数据库user表host字段值为‘%‘
			mysql>use mysql
		查看所有用户以及访问作用域
			mysql>select host,user from user;
		修改root用户作用域为所有
			mysql>update user set host='%' where user='root';
		退出mysql编辑:exit
	
	以下root用户操作
	16)重启mysql服务
		service mysql4 restart
	17)windows mysql工具连接测试,需要关闭防火墙,或者防火墙开放端口
	
	18)关闭服务:
		service mysql4 stop

4,rpm安装(linux通用,离线安装)
四,防火墙设置
1)概述:
系统服务:/etc/init.d/这个文件夹的内容就是服务

防火墙服务:iptables
启动服务:service 服务名 start
关闭服务:service 服务名 stop
重启服务:service 服务名 restart
关闭防火墙:service iptables stop

系统配置:

禁用服务:chkconfig 服务名 off
解禁服务:chkconfig 服务名 on
禁用防火墙:chkconfig iptables off

防火墙只开放一个断口

1)编辑防火墙配置文件:vi /etc/init.d/iptables
2)开放8080则增加如下内容(内容放文件前端):
	内容省略

五,其他软件
1)ssh基本知识:安全外壳协议,用来做远程连接其他linux服务器。

远程连接命令:ssh [用户名@] 网址

2)xManager:是windows访问linux一套工具包

Xshell:
	连接linux:打开Xshell,输入命令:ssh [用户名@] 网址

然后可以远程操作linux

六,dubbox微服环境
1,概述:
传统架构(B/S):单体架构,一个项目中开发,一起部署
微服架构(B/S):分布式开发,隔离部署,通过通信中间件实现多个服务器之间通信。
主流微服架构种类:dubbox(dubbo),spring cloud。
dubbox:是dubbo的扩展版本,由当当网发布并维护,是alibaba提出的
spring cloud:是springframe提出并维护的。
2,dubbo体系介绍:由注册中心,消费者,提供者,监控中心构成
注册中心:主要负责各个tomcat之间通信,注册服务,订阅服务。我们使用zookeeper中间件
监控中心:主要负责监控注册中心上是否有新服务注册,是否服务被消费
提供者:向注册中心注册服务。
消费者:从注册中心订阅服务。
3,dubbo环境准备:
A)搭建注册中心:

1,获取一个zookeeper中间件  解压zookeeper-3.4.12.tar.gz
2,更改zookeeper的配置文件 在zookeeper主目录下/conf/zoo_sample.cfg 
更改为zoo.cfg  打开该配置文件的修改如下:
	clientPort=2181  //访问端口是2181
	在zookeeper主目录下新建data目录,修该dataDir=data的路径
	如:dataDir=D:/zookeeper-3.4.12/data
3,启动zookeeper服务端
	双击 zookeeper主目录/bin/zkServer.cmd  启动服务端
	双击zookeeper主目录/bin/zkCli.cmd 启动客户端
	
	先打开3,再打开4步骤,打开后不要关掉。注意:如果打开时是一闪而过,说明
	Windows下面的jdk环境变量配置有问题。正确的配置如下:
       在全局变量栏配置:变量 :JAVA_HOME   值 :D:\xuexi\JDK  (jdk的路径)
                      变量 :path  值 :%JAVA_HOME%\bin  (jdk下面的bin路径)

B)搭建监控中心:

1,获取监控中心项目  dubbo-admin 监控中心项目(解压dubbo.zip后,在解压 
    dubbox-master.rar获得dubbo-admin项目)
dubbo.properties配置文件内容:
	//注册中心地址
	dubbo.registry.address=zookeeper://127.0.0.1:2181
	//root帐户密码
	dubbo.admin.root.password=root
	//guest帐户密码
	dubbo.admin.guest.password=guest
2,将dubbo-admin项目里dubbo-admin-2.8.4.war部署到tomcat里,启动tomcat(
	dubbo-admin项目/target/路径下可以找到dubbo-admin-2.8.4.war)
	操作:将dubbo-admin-2.8.4.wa包复制到weapps下面即可,启动tomcat(操
	作:双击tomcat主目录/bin/startup.bat 批处理文件 启动服务)
3,在浏览器访问dubbo监控中心项目http://localhost:8080/dubbo-admin-2.8.4

---------------下面是创建分布式项目,在之前需要先设置maven的仓库路径,然后再创建普通maven工程--------------------------------------
Linux_第1张图片
Linux_第2张图片
Linux_第3张图片
Linux_第4张图片

C)创建公共项目:
创建一个主项目(普通maven项目):dubbox-project,然后在项目上右
键新建module公共项目

1,新建一个公共项目smbms-common(module普通maven项目)
	
	
        
        
            org.codehaus.jackson
            jackson-mapper-asl
            1.9.12
        

    
2,新建实体类与service接口
	cn.kgc1803.smbms_common.pojo实体类包
	
		import java.io.Serializable;
		public class User implements Serializable {
   			private Integer id;
    			private String userCode;
    			private String userName;
    			private String password;

    			public Integer getId() {
        			return id;
    			}

    			public void setId(Integer id) {
        			this.id = id;
    			}
    			
	cn.kgc1803.smbms_common.service接口包
	
		public interface UserService {
    			//登陆
    			User loginUser(User user);
		}
		
3,利用maven将公用项目打成jar包安装到maven仓库中

Linux_第5张图片
Linux_第6张图片
Linux_第7张图片

D)dubbo开发provider(提供者)

1,新建一个module   smbms-user-provider
2,增加jar包依赖:
	1)mybatis jar
	2)spring-* jar
	3)mysql驱动包
	4)mybatis-spring jar
	------以下是dubbo,上面的包可以先不配----------
	5)zookeeper jar包			//
	6)zkclient jar包			//
	7)dubbo jar包				//
	8)smbms-common.jar包		//公共包
	9)hessian.jar包			//
	10)dubbo-rpc-rest.jar包 	//dubbox rest风格包
	
		
        
            cn.kgc1803
            smbms-common
            1.0-SNAPSHOT
        
        
            org.apache.zookeeper
            zookeeper
            3.4.6
        
        
            com.101tec
            zkclient
            0.8
        
        
            com.alibaba
            dubbo
            2.8.4
        
        
            com.caucho
            hessian
            4.0.7
        
        
        
            com.alibaba
            dubbo-rpc-rest
            2.8.4
        
        
3,编写pojo(共项目smbms-common的pojo):

	import org.codehaus.jackson.annotate.JsonProperty;
	import java.io.Serializable;
	public class Order implements Serializable {
    		@JsonProperty     //实体类可以自动转化为json类对象数据的属性
    		private Integer id;
    		@JsonProperty
    		private Integer ownerUserId;
    		@JsonProperty
    		private String productName;
    		@JsonProperty
    		private Double price;
    		@JsonProperty
    		private Integer amount;
    		
4,编写service实现类:
	
	import com.alibaba.dubbo.rpc.protocol.rest.support.ContentType;
	@Path("order")
	@Produces(ContentType.APPLICATION_JSON_UTF_8)  //设置输出结果集的 字符集
	public class OrderServiceImpl implements OrderService {
    		@Path("/orderlist/{userId}")   //访问路径
    		@GET                        //请求方式
    		public List findList(@PathParam("userId") Integer userId) {
        		List orders=new ArrayList();
        		Order order=new Order();
        		order.setId(userId);
        		order.setOwnerUserId(11);
        		order.setAmount(33);
        		order.setPrice(55.3);
        		order.setProductName("华为p8");
        		orders.add(order);
        		return orders;
    		}
	}
	
	
	import cn.kgc1803.smbms_common.pojo.User;
import cn.kgc1803.smbms_common.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
@Controller
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService userService;
    @RequestMapping(value = "dologin.htm",method = RequestMethod.POST)
    public String doLogin(User user, HttpSession session){
        User u=userService.loginUser(user);
        if(u!=null){
            session.setAttribute("session_user",u);
            return "index";
        }else {
            return "login";
        }
    }
}


5,配置spring
6,配置dubbox发布服务(在提供者项目新建dubbo_user_provider.xml配置文件):

	
	
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
	
	
7,启动测试:
	浏览器访问dubbo监控中心项目http://localhost:8080/dubbo-admin-2.8.4里可以	看到服务
	浏览器也可以用rest协议直接访问service实现类的方法,如:http://localhost:20888/order/orderlist/100

E)dubbo开发consume(消费者)

1)新建module smbms-user-consume
2)增加jar包依赖

1,spring-webmvc(spring+spring web+spring mvc):
	
        
            org.springframework
            spring-webmvc
            3.2.13.RELEASE
        
        
        
            javax.servlet
            servlet-api
            2.5
        
        
        
            javax.servlet
            jstl
            1.2
        
        
2,dubbo:
	
            com.alibaba
            dubbo
            2.8.4
        
        
3,zookeeper:
	
            org.apache.zookeeper
            zookeeper
            3.4.6
        
        
4,zkclient:
	
            com.101tec
            zkclient
            0.8
        
        
5,hession:
	
            com.caucho
            hessian
            4.0.7
        
        
6,公共包
	
            cn.kgc1803
            smbms-common
            1.0-SNAPSHOT
        

3)编写控制器(spring mvc)

@Controller
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService userService;
    @RequestMapping(value = "dologin.htm",method = RequestMethod.POST)
    public String doLogin(User user, HttpSession session){
        User u=userService.loginUser(user);
        if(u!=null){
            session.setAttribute("session_user",u);
            return "index";
        }else {
            return "login";
        }
    }
}

package cn.kgc1803.smbms_user_consume.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;

@Controller
@RequestMapping("/order")
public class OrderController {
    @RequestMapping("/orderlist.htm")
    public void getOrderListJson(HttpServletResponse response,Integer userId){
        response.setCharacterEncoding("UTF-8");
        try {
            //请求输出流
            OutputStream out=response.getOutputStream();
            //获取远程的dubbo rest数据
            //请求地址
            URL url=new URL("http://localhost:20888/order/orderlist/"+userId);
            //建立连接
            URLConnection conn=url.openConnection();
            //获取请求结果集对应的输入流
            InputStream input=conn.getInputStream();
            byte[] buf=new byte[1024];
            int len=input.read(buf);
            while (len!=-1){
                //输出0到len的数据
                out.write(buf,0,len);
                len=input.read(buf);
            }
            out.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

4)编写spring mvc配置文件(spring-servlet.xml)

1,配置spring mvc扫描注入控制器
	
2,配置注解驱动(解析控制器需求)
	 
3,配置视图解析器
	
        
        
    
 4,静态资源文件访问
 	
    

5)编写页面
1,如果不是web项目,改成web项目:
Linux_第8张图片
Linux_第9张图片
Linux_第10张图片
Linux_第11张图片

Linux_第12张图片
Linux_第13张图片

在当前消费者项目smbms-user-consume,pom.xml配置:

	
    war

Linux_第14张图片

2,编写页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib prefix="fm" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@page isELIgnored="false"%>



    登陆
    


    

${pageContext.request.contextPath}

用户名: 密码:

6)配置web.xml




    
        /WEB-INF/view/login.jsp
    

    
    
        contextConfigLocation
        classpath:smbms-user-consume.xml
    
    
    
        org.springframework.web.context.ContextLoaderListener
    

    
        mvc
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:spring-servlet.xml
        
    
    
        mvc
        /
    


-------以下都是dubbo消费者的配置---------
7)编写dubbo的配置文件(消费者):smbms-user-consume.xml




    
    
    
    
    
    

8)配置web.xml(dubbo)

1,启动dubbo消费者配置文件
	
    
        contextConfigLocation
        classpath:smbms-user-consume.xml
    
    
2,让springmvc与dubbo两个spring容器能相互访问
	
    
        org.springframework.web.context.ContextLoaderListener
    

6)测试
把消费者项目smbms-user-consume配置到Tomcat服务器

F,spring+mybatis(注解)
1)jar依赖(smbms-user-provider(提供者))

spring+mybatis+整合包+数据库驱动包
	1,mybatis jar
	2,整合包
	3,数据库驱动包
	
	
        
            org.mybatis
            mybatis
            3.4.6
        
        
        
            org.mybatis
            mybatis-spring
            1.3.2
        
        
        
            mysql
            mysql-connector-java
            5.1.46
        
        
        
            commons-dbcp
            commons-dbcp
            1.3
        

        
            org.springframework
            spring-jdbc
            3.2.9.RELEASE
        

        
            org.springframework
            spring-tx
            3.2.9.RELEASE
        
    

2)编写 dao

import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

@Mapper  //表示该接口是一个注解mybatis接口
@Repository   //表示注入一个dao实现类
public interface UserMapper {
    //登陆
    @Select("SELECT id,userName,userCode FROM smbms_user WHERE userCode=#{userCode} and password=#{password}")
    @Results(id="userMap",value = {
            @Result(property = "id",column = "id",javaType =Integer.class ),
            @Result(property = "userName",column = "userName",javaType =String.class ),
            @Result(property = "userCode",column = "userCode",javaType =String.class )
            })         //相当于resultMap,如果用resultType就不用写
    User loginUser(User user);
}

3)配置spring(注入mybatis,dao,service)

1,新建一个spring整合配置文件:spring-service.xml
2,注入dataSource,sessionFactory,dao mapper
3,注入service
	
	


    
    
    
    
        
        
        
        
    
    
    
        
    
    
    
        
        
    
    
    

4)启动:

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestProvider {
    public static void main(String[] args){
        String[] xmls={"spring-service.xml","dubbo_user_provider.xml"};
        //加载sering配置文件
        ApplicationContext ctx=new ClassPathXmlApplicationContext(xmls);
        try {
            //休眠10分钟
            Thread.sleep(60*60*1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

你可能感兴趣的:(linux)