前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java mysql redis数据库操作

java mysql redis数据库操作

作者头像
多凡
发布2019-11-01 09:47:19
1.8K0
发布2019-11-01 09:47:19
举报
文章被收录于专栏:sringboot

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_44580977/article/details/95110508

  • 对称型数据库控制

数据库操作

##由下层到上层讲解

1.Mysql库驱动包,由数据库厂商统一按照java jdbc接口实现

Mysql驱动包内使用数据库

//1. 注册驱动

Class.forName("com.mysql.jdbc.Driver");

//2. 定义sql

String sql = "insert into account values(null,'王五',3000)";

//3.获取Connection对象

conn = DriverManager.getConnection("jdbc:mysql:///db3", "root", "root");

//4.获取执行sql的对象 Statement

stmt = conn.createStatement();

//5.执行sql

int count = stmt.executeUpdate(sql);//影响的行数

2.JDBC API封装了 数据库驱动 加载配置信息(其实他就是接口,各个数据库驱动包是是实现了JDBC

1.JDBC API使用数据库操作

在静态代码块内

代码语言:javascript
复制
Static{
            Properties pro = new Properties();
            //获取src路径下的文件的方式--->ClassLoader 类加载器
            ClassLoader classLoader = JDBCUtils.class.getClassLoader();
            URL res  = classLoader.getResource("jdbc.properties");
            String path = res.getPath();
           // System.out.println(path);///D:/IdeaProjects/itcast/out/production/day04_jdbc/jdbc.properties

//2. 加载文件

代码语言:javascript
复制
           // pro.load(new FileReader("D:\\IdeaProjects\\itcast\\day04_jdbc\\src\\jdbc.properties"));
            pro.load(new FileReader(path));

//3. 获取数据,赋值

代码语言:javascript
复制
            url = pro.getProperty("url");
            user = pro.getProperty("user");
            password = pro.getProperty("password");
            driver = pro.getProperty("driver");

//4. 注册驱动

代码语言:javascript
复制
            Class.forName(driver);
}

2.配置文件应该怎么写?

代码语言:javascript
复制
url=jdbc:mysql:///db3
user=root
password=root
driver=com.mysql.jdbc.Driver

3.缺点:

* 数据库频繁创建链接,关闭链接,浪费资源

**下面就出现了druid连接池技术,

使用阿里巴巴提供的druid

实际上就相当于一个存放数据库连接的容器,当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。其实就是一个容器(集合),存放数据库连接的容器。

阿里巴巴 连接池工具 druid 包 使用方式

1.使用工厂类 创建连接池 : 这需要配置文件对象 作为 工厂类的创建连接池的参数

代码语言:javascript
复制
        static private DataSource ds

=DruidDataSourceFactory.createDataSource(配置文件对象);

2.配置文件对象怎么加载?

1.先要创建一个 配置文件对象 来加载配置文件new Properties();

2.加载配置文件成字节流

1.要找到配置文件的路径

1.JDBCUtils.class找到父类路径,即 class<T>的路径

2.JDBCUtils.class.getClassLoader获得类加载器,他也是一个java类,里面存有类加载器的信息,其中就有路径

2.JDBCUtils.class.getClassLoader().getResourceAsStream在类加载器目录下搜索配置文件,性能高

3.配置文件内容怎么填?

代码语言:javascript
复制
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///day23
username=root
password=root
initialSize=5
maxActive=10
maxWait=3000

4.实质是什么?

一个更加方便管理数据库连接的工具

3. Spring JDBC 框架对JDBC进行了简单的封装。

1.提供了一个JDBCTemplate对象简化JDBC的开发

需要的包有以下几个

1.如何使用spring JDBCTemplate?

1.需要DataSource连接池对象

New JdbcTemplate(ds)

2.如何完成增删改查的操作呢CRUD?

  • 非对称性数据库控制

1.redies为什么要用redies

* 查询速度:比mysql快太多了

* 储存格式:可以存的形式很多如文档,图片形式等,还有集合对象等,而数据库只能存基础类型

2. redies键值可以存哪些数据类型?

1) 字符串类型 string

2) 哈希类型 hash

3) 列表类型 list

4) 集合类型 set

5) 有序集合类型 sortedset

3.redies有哪些应用场景?

• 缓存(数据查询、短连接、新闻内容、商品内容等等)

• 聊天室的在线好友列表

• 任务队列。(秒杀、抢购、12306等等)

• 应用排行榜

• 网站访问统计

• 数据过期处理(可以精确到毫秒

• 分布式集群架构中的session分离

4.java中如何使用?

1. 导入jedis的jar包

2. 使用

这里值举出了String烈性的存储

//1. 获取连接

Jedis jedis = new Jedis("localhost",6379);

//2. 操作

jedis.set("username","zhangsan");

Jedies.get(“username”);

//3. 关闭连接

jedis.close();

因为上面存在申请创建连接和关闭连接,存在资源的浪费

解决资源浪费,这里使用jedis连接池,和druid同理

* jedis连接池: JedisPool

1. 创建JedisPool连接池对象

2. 调用方法 getResource()方法获取Jedis连接

代码语言:javascript
复制
                                   //0.创建一个配置对象
                             JedisPoolConfig config = new JedisPoolConfig();
                             config.setMaxTotal(50);
                             config.setMaxIdle(10);

//1.创建Jedis连接池对象

代码语言:javascript
复制
                             JedisPool jedisPool = new JedisPool(config,"localhost",6379);

//2.获取连接

代码语言:javascript
复制
                             Jedis jedis = jedisPool.getResource();

//3. 使用

代码语言:javascript
复制
                             jedis.set("hehe","heihei");

//4. 关闭 归还到连接池中

代码语言:javascript
复制
                             jedis.close();

* 连接池工具类

代码语言:javascript
复制
                            public class JedisPoolUtils {
                                private static JedisPool jedisPool;
                                static{
                                    //读取配置文件
                                    InputStream is = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
                                    //创建Properties对象
                                    Properties pro = new Properties();
                                    //关联文件
                                    try {
                                        pro.load(is);
                                    } catch (IOException e) {
                                        e.printStackTrace();
                                    }
                                    //获取数据,设置到JedisPoolConfig中
                                    JedisPoolConfig config = new JedisPoolConfig();
                                    config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
                                    config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));
                                    //初始化JedisPool
                                    jedisPool = new JedisPool(config,pro.getProperty("host"),Integer.parseInt(pro.getProperty("port")));
                                }

1.为什么要加个配置让带啊变得繁琐?

工具类的原则就是,将配置和代码分离,实现灵活的改变端口

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档