数据库相关知识的总结
来源:互联网 发布:机械手编程语言 编辑:程序博客网 时间:2024/04/29 14:23
近期做了一个仿QQ网络编程项目,但由于很多知识尚存在问题,在此,就不介绍项目成果了,待后面解决这些问题,会再更新博客。下面主要是讲解这个项目中数据库设计的一些问题。
数据库可以说是一个项目中很关键的一环,数据库设计得好,项目中很多问题都能轻松解决。数据库设计的重要性和设计原则:http://blog.csdn.net/wangpeng047/article/details/7109208
数据库设计的过程(六个阶段):
1.需求分析阶段
准确了解与分析用户需求(包括数据与处理)
是整个设计过程的基础,是最困难、最耗费时间的一步
2.概念结构设计阶段
是整个数据库设计的关键
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
3.逻辑结构设计阶段
将概念结构转换为某个DBMS所支持的数据模型
对其进行优化
4.数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
5.数据库实施阶段
运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果
建立数据库,编制与调试应用程序,组织数据入库,并进行试运行
6.数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。
在数据库系统运行过程中必须不断地对其进行评价、调整与修改
连接数据库代码部分:
public class DBUtil {
//连接数据库的方法
public static ConnectiongetConnect(){
Connection conn = null;
String user = "root";
String pwd = "123456";
String url ="jdbc:mysql://localhost:3306/qq_chat";
try {
//加载数据库连接的驱动类 Class.forName("com.mysql.jdbc.Driver").newInstance();
//获取连接
conn = DriverManager.getConnection(url, user, pwd);
System.out.println("连接成功!");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
同时如果要为了以后的调用方便,可将上述类中的getConnect方法,拆分为以下模式:声明为静态的方法,更便于操作,但会消耗一定内存。
public class JDBCUtils
{
private JDBCUtils(){}
static private String driveName="com.mysql.jdbc.Driver" ;
static private String url="jdbc:mysql://localhost:3306/qq_chat" ;
static private String user="root" ;
static private String password="123456" ;
static
{
try {
Class.forName(driveName);
} catch (ClassNotFoundExceptione) {
e.printStackTrace();
}
}
public static Connection getConnection()
{
Connection conn= null;
try {
conn = DriverManager.getConnection(url,user, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void closeAll(Connection conn,Statement stmt,ResultSet rs)
{
if(conn!=null)
{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
if(stmt!=null)
{
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt = null;
}
if(rs!=null)
{
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
}
}
也可以使用配置文件来加载数据库:
public class DBUtils
{
private static String driver;
private static String url;
private static String user;
private static String password;
/**
* 初始化值
*/
static {
File file = newFile("src" + File.separator + "db_properties.properties");//db_properties.properties为配置文件
try {
FileInputStream fis = newFileInputStream(file);
// 创建一个 Properties 对象
Properties p = newProperties();
// 加载读取的数据
p.load(fis);
// 取出对应的值
driver =p.getProperty(driver);
url =p.getProperty("url");
user =p.getProperty("user");
password =p.getProperty("password");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取连接对象
* @return Conn当前连接的对象
*/
public static Connection getConn()
{
Connection conn = null;
try {
Class.forName(driver);
conn =DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
配置文件"db_properties.properties"的内容:
# mysql #
driver = com.mysql.jdbc.Driver
url = jdbc:mysql://127.0.0.1:3306/qq_chat
user = root
password =123456
数据库操作类的相关步骤:
1. 先获取连接对象,
Connection conn = DBUtil.getConnect();
2. 要执行的sql语句
String sql = “ ;”;
(注意sql语句结尾,mysql中可以加分号,而在其他的数据库中千万不能以分号结尾,可以用go结束)
Sql语句有两种表示方式,现举例说明:
方式一:
String sql = "insert into user(username,password)values('"+username+"','"+password+"');";
方式二:
String sql = "insert into user(username,password)values(?,?);";
3.创建预编译对象
PreparedStatement ps = conn.prepareStatement(sql);
设置参数的值(如果sql语句是使用第二种方式,则要有此步骤)
ps.setString(1, username);
ps.setString(2,password);
4.发送并执行sql
ps.executeUpdate();(更新时用)
ResultSet rs = ps.executeQuery();(查询时用,一般都会返回结果集对象)
- 数据库相关知识的总结
- mysql数据库相关知识总结
- 数据库事务相关知识总结
- 数据库的相关知识
- 数据库的相关知识
- 数据库相关知识复习总结《一》
- 数据库,SQL等相关知识总结
- LeetCode数据库题解&&sql相关知识总结
- 操作系统相关知识的总结
- MYSQL的相关知识总结
- 接口的相关知识总结
- session相关的知识总结
- 进程的相关知识总结
- Servlet相关知识的总结
- 总结数组的相关知识
- Java 访问数据库 --java与DataBase相关知识总结(四) 经典的java数据库连接池
- http的相关的知识总结
- servlet的一些相关知识的总结
- 线段树二维转一维CodeforcesBeta Round #19 D. Points(好)
- 图的广度遍历和深度遍历
- target-action传值
- Linux内核同步—kref
- #256 C. Painting Fence 分治
- 数据库相关知识的总结
- SourceInsight中文字体
- 分析结果健康和健康了
- 补码原理(转)
- 是的根本就等级考试发给你看不见对方能够看得见你发
- 四.函数指针和指针函数
- gdb 调试命令整理
- 为元素文字高亮关键字
- C#彩色艺术化二维码样式设计(仅说思路)