`
nullpointsun
  • 浏览: 34825 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JavaWeb数据库之JDBC链接

阅读更多

这些年一直在做移动方面的开发,发现原来做Web时那些个种种都忘光光了,呵呵,不能忘本,从今天开始把之前学到的一些东西总结总结,从最基础的JDBC开始吧,尽管JDBC几乎应该时不会有人用了,不过既然时基础,自然有其道理,很多框架,比如hibernate其实也就是在其上套了一层而已。


1.准备数据库,看来看去还是mySQL顺眼,什么Oracel太大,用的地方也不多,大部分企业mySQL足够了

mySQL如今已经给oracle收购了!我是多久没关注web了,罪过!

https://dev.mysql.com/downloads/mysql/

霹雳啪啦一顿装,搞定它


2.建一个简单的数据库(mysql有一个自动的cmd工具可以用,除非是远程操作,本地直接用就行了)

 mysql>show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mytestdb           |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
7 rows in set (0.00 sec)



然后又是霹雳啪啦

 mysql> use mytestdb
Database changed
mysql> create table user(id int not null primary key, name char(20));
Query OK, 0 rows affected (0.05 sec)

mysql> show tables
    -> ;
+--------------------+
| Tables_in_mytestdb |
+--------------------+
| t_user             |
| user               |
+--------------------+
2 rows in set (0.00 sec)



差不多就这么建好了,有一个要注意的地方,sql语句是要以;结束的,我给老忘了这事

3. 准备Java这边吧
首先需要一个mysql和java连接的jar包
C:\Program Files (x86)\MySQL\Connector.J 5.1 这个目录下就能找到,不用去网上下了,若没有,可以自带的什么conector再下一个


然后buidpath一下,把它加到依赖库里面


然后建两个类,把DBhelper.java放到db package下

package com.nullpointsun.app.db;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class DBHelper {

	/*
	 * SQL数据库的地址,这里后面是可以跟很多参数的 建议有空还是看一下官网,可能有些参数有用
	 ** https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-
	 * configuration-properties.html
	 */
	private static final String URL = "jdbc:mysql://127.0.0.1:3306/mytestdb";

	// 用户名密码
	private static final String USR = "root";
	private static final String PASW = "root";

	public static Connection conn;
	public static DBHelper dbHelper;

	// 连接数据库
	private DBHelper() {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = (Connection) DriverManager.getConnection(URL, USR, PASW);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		System.out.println("DB connect successful!");
	}

	public synchronized static DBHelper getInstance() {
		if (dbHelper == null) {
			dbHelper = new DBHelper();
		}
		return dbHelper;
	}

	// 断开数据库
	public void closeDB() {
		try {
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	//直接丢SQL语句到这里就可以了, update是更新执行
	//executeUpdate(String sql)会返回一个int值,这个值是执行语句描述会影响哪些行,若-1表示执行失败
	public int executeUpdateSQL(String sql) {
		if (conn != null) {
			try {
				Statement sm =  (Statement) conn.createStatement();
				return sm.executeUpdate(sql);
			} catch (SQLException e) {
				e.printStackTrace();
				return -2;
			}
		} else {
			System.out.println("connection is null!");
			return -2;
		}
	}
	
	//查询语句
	public ResultSet executeQuerySQL(String sql) {
		if (conn != null) {
			try {
				Statement sm =  (Statement) conn.createStatement();
				return sm.executeQuery(sql);
			} catch (SQLException e) {
				e.printStackTrace();
				return null;
			}
		} else {
			System.out.println("connection is null!");
			return null;
		}
	}

}



package com.nullpointsun.app;

import java.sql.ResultSet;
import java.sql.SQLException;

import com.nullpointsun.app.db.DBHelper;

public class Main {
	
	public static void main(String[] args) {
		DBHelper db = DBHelper.getInstance();
		ResultSet rs = null;
		
		//删除限制表里面所有的记录
		String delete = "delete from user where 1=1";
		db.executeUpdateSQL(delete);
		
		//插入5条记录
		String sql_insrt1 = "insert into user values (1, 'jeff')";
		String sql_insrt2 = "insert into user values (2, 'nullpointer')";
		String sql_insrt3 = "insert into user values (3, 'jasky')";
		String sql_insrt4 = "insert into user values (4, 'Tom')";
		String sql_insrt5 = "insert into user values (5, 'Jarry')";
		db.executeUpdateSQL(sql_insrt1);
		db.executeUpdateSQL(sql_insrt2);
		db.executeUpdateSQL(sql_insrt3);
		db.executeUpdateSQL(sql_insrt4);
		db.executeUpdateSQL(sql_insrt5);
		
		//查询一下现况
		String sql_query = "select * from user";
		rs = db.executeQuerySQL(sql_query);
		try {
			while (rs.next()) {
				System.out.println("id=" + rs.getInt(1) + ", name=" + rs.getString(2));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		System.out.println("********************************************");
		
		//更新表
		String sql_update = "update user set name='HelloKity' where id=4";
		db.executeUpdateSQL(sql_update);
		
		//删除一条记录
		String sql_detele_2 = "delete from user where name=\"nullpointer\"";
		db.executeUpdateSQL(sql_detele_2);
		
		//再查一下
		rs = db.executeQuerySQL(sql_query);
		try {
			while (rs.next()) {
				System.out.println("id=" + rs.getInt(1) + ", name=" + rs.getString(2));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		
	}

}



基本用就这么用后面看到再总结更新这篇文章吧

用JDBC呢,其实还是用SQL语句和数据库打交道,每句话都能看的很清楚,就是显得不OO了,特别是若对象一堆子属性的时候,估计sql语句拼起来是非常费劲的事情,想象一下字符串和变量的拼接吧,各种“”和+,里面还得各种转义字符,后期维护是个头大的事情啊,所以人家发明hibernate也不是没事撑着的,哈哈!

P.S.
关于mysql里面声明主键非空自增长,老是记不住,废话不用能记住个鬼,懒的查留一个
id int auto_increment not null primary key

 

  • 大小: 5.2 KB
  • 大小: 11.7 KB
分享到:
评论

相关推荐

    基于JavaWeb的企业员工信息管理系统【项目源码+数据库脚本】(毕设)

    本项目是一套基于JavaWeb的企业员工信息管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 ...

    Java Web的JDBC8.0.

    在学习Java Web中,需要连接数据库。...数据库访问是通过Java数据库连接实现的,一种是通过JDBC驱动程序直接连接数据库,另一种是通过连接数据池技术连接数据库。 怎么安装JDBC呢?下面链接是详细介绍 ...

    智能开发平台 DOROODO

    characterEncoding=UTF-8 ---->数据库链接 jdbc.username=root ---->数据库用户名 jdbc.password=smarte ---->数据库密码 codeRoot=E:/git/workspace/doroodo ---->项目文件路径 log4j.appender.appender3.URL=...

    基于Javaweb的社区门诊系统的设计与实现.rar

    系统采用Java语言开发,使用Eclipse作为系统的开发环境,基于SSM框架开发服务器端,数据库使用MySQL,数据连接工具使用Navicat,连接数据库的连接方式为JDBC。此系统解决的关键问题是用户信息的添加、修改和删除间的...

    java大作业,实现学生信息增删改查

    编写Web应用程序(JavaEE平台上的应用,能够运行在Tomcat服务器上),实现学生信息的增删改查。 在Web页面上实现添加一个学生记录,删除某个学生记录,修改某个学生记录,和按照姓名,学号进行查询。...

    java毕业设计源码 jsp089SSM动物园管理系统AEB6程序数据库论文.zip

    本系统基于SSM(Spring+SpringMVC+MyBatis)框架,适用于毕业设计,采用javaweb,基于B/S模式,Myeclipse或者eclipse为开发工具,mysql数据库,感兴趣的朋友们可以下载研究一下。 1、管理员账号:hsg 密码:hsg 2、开发...

    题目:慧心人力资源管理系统,美和易思JavaWeb机试考试试卷.docx

    4.数据库技术:JDBC 二、实现功能 人力资源公司为了提高管理效率,需开发一套B/S结构人力资源管理系统,对员工信息进行管理,主要功能如下: 1.首页默认显示现有的所有员工信息 2.鼠标悬停某行数据,该行样式发生变化...

    基于JavaWeb的网络购物系统的设计与实现项目源码

    本网上购物系统是一个基于Internet,采用B2C(Business to Consumers) [1]模式,并根据现有的网上购物系统的现状而设计开发的电子商务...我们将使用HTML、JSP等技术来编辑网页,并运用JDBC技术把数据库和动态网页相关联

    chapter01.rar

    java web链接数据库以及对数据库增删改查简单操作,附带数据库,数据库放在工程文件内,导入数据库架包及可使用。增删改查等基本操作,以及批处理命令。

    Android应用源码基于安卓的校园二手交易系统

    因为我电脑有点问题就没有搭建环境进行完整的测试,截图是在没有连接服务端的情况下测试的,需要的朋友可以自己链接好数据库和服务端看一下, 注意本项目有依赖库,导入的时候需要把安卓客户端和依赖库一起导入进去...

    Java Web新闻发布项目

    db.ConnectionManager 这是个数据库链接管理类 public class ConnectionManager { public ConnectionManager() { } public static Connection Getcon() { Connection con=null; try { Class.forName("sun....

    老罗android视频开发源码和ppt经典

    6.3 TextView单击链接弹出Activity 6.4 TextView实现跑马灯效果 6.5 EditText输入表情图像 6.6 EditText中输入特定的字符 6.7 AutoCompleteTextView完成输入 6.8 Button按钮的焦点变化 6.9 Button图文混排的按钮 ...

    mvc 模型 servlet+jsp登陆Demo

    这是javaWeb项目,主要内容有:jsp登陆页面,servlet、service、dao、entity,dao中很详细的jdbc链接数据库的注释,doc下sql文件。重要声明:该demo只提供初学者学习。

    基于java web的学生成绩后台管理系统

    Servlet+JSP+jdbc+bootstrap+jquery+js 数据库文件 链接: https://pan.baidu.com/s/1LDn-ssmcqphqI8HKwqAfJg 密码: ynbe jar包文件 链接:https://pan.baidu.com/s/1CJAQAT74hKD1MlsVwbCdCw 提取码:vuex

    java毕业设计070ssm交通信息网上查询系统AEB6程序毕设源码数据库论文.zip

    本系统基于SSM(Spring+SpringMVC+MyBatis)框架,适用于毕业设计,采用javaweb,基于B/S模式,Myeclipse或者eclipse 为开发工具,mysql数据库,。 12.添加收藏:注册用户在网站前台登录个人账号后,可以选择某个公交路线...

    jsp+servlet+javabean新闻发布系统计算机毕业设计源码

    注意:本系统采用jdbc:odbc方式连接的数据库,需要在运行前设置数据源,数据源的名称是xwfb,路径附加好的sqlserver数据库 测试管理员帐号和密码: admin 198517 测试用户帐号和密码: linjian 198517

    通过IDEA创建的SpringMVC框架,实现了基本的响应查找和mysql查找操作,适合初学者

    c3pO链接地址池 Maven导包 数据库账号、密码、地址、表名记得去jdbc.properties里面改,数据库就一张User表,一行数据 不要小瞧只有35KB,正常使用的,我把输出tarGet和out删掉了,不然一堆包要很大的

    xmljava系统源码-servlet-jsp_news:基于原生servlet、jsp、jdbc实现的新闻系统,采用wangEditor富文

    基于servlet&jsp及原生jdbc开发的新闻系统项目 本项目采用实现的文章发布的新闻系统,同时有前台展示。 文章发布不提供图片上传,因此新闻文章内容是纯文本的。 项目中的登录、后台等部分页面UI使用官方提供的模板。...

    [Java Web/MySQL数据库]在线商城及其管理系统【长实习课设毕设项目、源码报告PPT视频全套】

    (3) 商品浏览:可以查询商品,显示商品详情,提供购买链接进行跳转。 (4) 购物车管理:欲购买商品可以增添到购物车,也可以从购物车删除商品。 (5) 订单查询:用户登录后可以下订单,用户登录后也可以查看自己的订单...

    JAVA上百实例源码以及开源项目源代码

    简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!...

Global site tag (gtag.js) - Google Analytics