发表于: 2019-10-24 23:39:45
1 918
编辑日报内容...
MySQL索引学习
索引分单列索引和组合索引。单列索引,即一个索引值包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。
创建索引时,需要确保该索引是应用在SQL查询语句的条件(一般作为WHERE子句的条件)。
个人理解:一些常用的需要查询的条件应该添加索引。
以任务数据库来说:经常可能会查询的条件有姓名,线上学号,日报链接等,反之ID就不需要加索引。
普通索引
创建索引
这是最基本的索引,它没有任何限制。有以下几种创建方式:
Create index indexName on mytable(username(length))
住:indexName是索引名称,username是字段名
如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。
举例:
1 2 3 4 5 6 7 8 9 10 |
|
修改表结构(添加索引)
ALTER table tableName ADD INDEX indexName(columnName)
举例:
1 |
|
创建表的时候直接指定
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX [indexName] (username(length))
);
举例:
1 2 3 4 5 6 7 8 9 10 11 |
|
删除索引的语法
DROP INDEX [indexName] ON mytable;
举例:
1 |
|
实际操作:
给姓名建索引,思考一下还应该给哪些数据建索引
ALTER TABLE students add index index_name(name);#这里可以不指定索引的长度
插入10条数据,查看有索引和无索引的情况下,Sql语句执行的效率
insert into students (name,QQ,admissionTime,University,onlineId,DailyLink,declaration,create_at)VALUES ('柴生瑞','582721701','2019年4月17日','信阳师范学院',1707,'https://www.jnshu.com/school/35937/daily','励志成为行业精英','2019-10-24')
SELECT * from students WHERE name ='柴生瑞'
结果:
因为此时的数据并不算很多,因此并没有直接的感觉到效率高低,但是理论上查询效率是更高的。
JDK和JRE
JDK是JAVA开发工具包,主要面向开发人员
JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。
JDK是整个Java开发的核心,包括了Java运行环境,Java工具和Java基础类库。
————————————————
版权声明:本文为CSDN博主「Chen_006」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chen_006/article/details/88656268
JRE是Java程序的运行环境,面向Java程序的使用者,而不是开发者,JRE是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机(jvm)、Java核心类库和支持文件。它不包含开发工具(JDK)–编译器、调试器和其它工具。
如果电脑安装了JDK,那么不仅可以开发Java程序,也同时拥有了运行Java程序的平台
如果只安装了JRE,那么电脑只能运行Java程序,而不能从事Java开发
创建Maven项目
引入mysql-connector-java
写了JDBC连接数据库以及增删改查的代码,但是不知道正不正确,学了Junit以后测试一下。。。。。
User类
1. package model;
2.
3. import java.util.Date;
4.
5. public class User {
6. private int id;
7.
8. private String name;
9.
10. private String QQ;
11.
12. private String addmissionTime;
13.
14. private String University;
15.
16. private int onlineId;
17.
18. private String DailyLink;
19.
20. private String declaration;
21.
22. private Date create_at;
23.
24. private Date update_at;
UserDao接口:
1. package dao;
2.
3. import model.User;
4.
5. import java.util.List;
6.
7. public interface UserDao {
8. //添加
9. public void addUser(User user);
10.
11. //删除
12. public void delUser(int id) ;
13.
14. //修改
15. public void updateUser(User user);
16.
17. //查询
18. public User query();
19. }
UserDaoImpl数据库访问的JDBC实现:
1. package dao;
2.
3. import com.sun.xml.internal.bind.v2.model.core.ID;
4. import model.User;
5.
6. import javax.naming.Name;
7. import java.sql.*;
8. import java.util.List;
9.
10. public class UserDaoImpl implements UserDao {
11. private static final String url = "jdbc:mysql://localhost:3306/task1";
12.
13. private static final String user = "root";
14. private static final String password = "root";
15.
16. private static Connection conn = null;
17. private PreparedStatement ps=null;
18. private ResultSet rs = null;
19. static {
20. //静态块,保证驱动只注册一次
21. try {
22. Class.forName("com.mysql.jdbc.Driver");
23. conn = DriverManager.getConnection(url,user,password);
24. } catch (Exception e) {
25. e.printStackTrace();
26. }
27.
28.
29. }
30.
31. public void addUser(User user) {
32. String sql = "insert into students(id,name,QQ,addmissionTime,University,onlineId,DailyLink,declaration,create_at,update_at)"+
33. "values("+"?,?,?,?,?,?,?,?,?,CURRENT_DATE())";
34. try {
35. ps = conn.prepareStatement(sql);
36. ps.setInt(1,user.getId());
37. ps.setString(2,user.getName());
38. ps.setString(3,user.getAddmissionTime());
39. ps.setString(4,user.getDeclaration());
40. ps.setString(5,user.getUniversity());
41. ps.setInt(6,user.getOnlineId());
42. ps.setString(7, String.valueOf(user.getCreate_at()));
43. ps.setString(8, String.valueOf(user.getUpdate_at()));
44. ps.execute();
45. } catch (Exception e) {
46. e.printStackTrace();
47. }
48.
49. }
50.
51. public void delUser(int id) {
52. String sql="delete from students where id=?";
53. try {
54. ps = conn.prepareStatement(sql);
55. ps.setInt(1,id);
56. ps.execute();
57. } catch (SQLException e) {
58. e.printStackTrace();
59. }
60.
61. }
62.
63. public void updateUser(User user) {
64. String sql = "update students set name=?,QQ=? where id=? ";
65.
66. try {
67. ps = conn.prepareStatement(sql);
68. ps.setString(1,user.getName());
69. ps.setString(2,user.getQQ());
70. ps.execute();
71. } catch (Exception e) {
72. e.printStackTrace();
73. }
74.
75. }
76.
77. public User query() {
78. String sql = "select * from students where id=?";
79. User user = new User();
80. try {
81. ps = conn.prepareStatement(sql);
82. ps.setInt(1, user.getId());
83. rs = ps.executeQuery();
84. while (rs.next()){
85. user.setId(rs.getInt("id"));
86. user.setName(rs.getString("name"));
87. user.setAddmissionTime(rs.getString("addmissionTime"));
88. user.setUniversity(rs.getString("University"));
89. user.setOnlineId(rs.getInt("onlineId"));
90. user.setDailyLink(rs.getString("DailyLink"));
91. user.setDailyLink(rs.getString("declaration"));
92. user.setCreate_at(rs.getDate("create_at"));
93. user.setUpdate_at(rs.getDate("update_at"));
94. }
95. } catch (SQLException e) {
96. e.printStackTrace();
97. }
98.
99.
100. return user;
101. }
102. }
今天的任务就完成了这么多
明天学Junit测试,看能不能成功。。。。
评论