Java与数据库的结合,应用实例。以学生表、选课表为例。可以自己扩展功能。
2009-10-17 22:19
861 查看
这个工程分很多包和具体地类别,以便与层次清晰,这样是个良好的习惯。当一个工程大到要用几百几千个包的时候,这个方式就会很有利于你的编程了。
===================================================================================
studentdb.sql文件///在查询分析器运行和刷新即可。就可以得到数据库及相应表。
************************************************************
/*
MySQL Data Transfer
Source Host: localhost
Source Database: studentdb
Target Host: localhost
Target Database: studentdb
Date: 2009-10-15 11:50:15
*/
DROP Database IF EXISTS `studentdb`;
CREATE Database `studentdb`;
use`studentdb`
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for schoolclass
-- ----------------------------
DROP TABLE IF EXISTS `schoolclass`;
CREATE TABLE `schoolclass` (
`cid` int(11) NOT NULL auto_increment,
`cname` varchar(10) NOT NULL,
PRIMARY KEY
(`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`sid` int(11) NOT NULL auto_increment,
`sname` varchar(10) NOT NULL,
`cid` int(11)
NOT NULL,
PRIMARY KEY (`sid`),
KEY `fk` (`cid`),
CONSTRAINT `fk` FOREIGN KEY (`cid`) REFERENCES `schoolclass`
(`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `schoolclass` VALUES ('1', '天才班');
INSERT INTO `schoolclass` VALUES ('2', '人才班');
INSERT INTO `student` VALUES ('1', '的萨菲', '1');
INSERT INTO `student` VALUES ('2', '而为', '2');
INSERT INTO `student` VALUES ('3', 'kilo', '1');
=================================================================================
database.properties 文件 放置在src包下;
jdbc.drivers=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/studentdb?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=
==================================================================================
package com.itshixun.biz;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Scanner;
import com.itshixun.dao.SchoolClassDAO;
import com.itshixun.dao.StudentDAO;
import com.itshixun.entity.Student;
public class MultiSocketClient extends Thread {
private StudentDAO sdao;
private SchoolClassDAO scdao;
private Socket socket;
private static final String sepStr = "------------------------------";
private static final String inputMsg = "请输入选择的编号:";
public Socket getSocket() {
return socket;
}
public void setSocket(Socket socket) {
this.socket = socket;
}
/**
* 工作方法
*/
@Override
public void run() {
Scanner in = null;
PrintWriter out = null;
try {
in = new Scanner(socket.getInputStream());
out = new PrintWriter(socket.getOutputStream(), true);
out.println("欢迎来到学校!");
topmenu(in, out);
out.println("再见!");
} catch (Exception e) {
e.printStackTrace();
if (out != null) {
out.println("出现异常 原因是:" + e.getMessage() + " 连接关闭");
}
} finally {
try {
socket.close();
} catch (IOException e) {
}
}
}
public MultiSocketClient(Socket socket) throws IOException,
ClassNotFoundException {
setSocket(socket);
sdao = new StudentDAO();
scdao = new SchoolClassDAO();
}
/**
*
* @param in
* @param out
* @throws SQLException
*/
public void topmenu(Scanner in, PrintWriter out) throws SQLException {
String choice = null;
do {
out.println(sepStr);
out.println(String.format("%5d%15S", 1, "Student"));
out.println(String.format("%5d%15S", 2, "SchoolClass"));
out.println(String.format("%5d%15S", 9, "exit"));
out.println(sepStr);
out.println(inputMsg);
choice = in.nextLine();
int intChoice = 0;
try {
intChoice = Integer.parseInt(choice);
} catch (NumberFormatException e) {
out.println("请输入数字!");
continue;
}
switch (intChoice) {
case 1:
opStudent(in, out);
break;
case 2:
opSchoolClass(in, out);
break;
case 9:
break;
default:
out.println("请输入合法数字!");
break;
}
} while (!"9".equals(choice));
}
private void opSchoolClass(Scanner in, PrintWriter out) {
}
private void opStudent(Scanner in, PrintWriter out) throws SQLException {
String choice = null;
do {
out.println(sepStr);
out.println(String.format("%5d%15S", 1, "学员列表"));
out.println(String.format("%5d%15S", 2, "新增学员"));
out.println(String.format("%5d%15S", 9, "exit"));
out.println(sepStr);
out.println(inputMsg);
choice = in.nextLine();
int intChoice = 0;
try {
intChoice = Integer.parseInt(choice);
} catch (NumberFormatException e) {
out.println("请输入数字!");
continue;
}
switch (intChoice) {
case 1:
Collection<Student> findAll = sdao.findAll();
out.println(sepStr);
out.println(String.format("%S/t%S/t%S", "学号", "学员姓名", "班级号"));
out.println(sepStr);
for (Student student : findAll) {
out.println(String.format("%S/t%S/t%S", student.getSid(),
student.getSname(), student.getCid()));
}
out.println(sepStr);
break;
case 2:
// 新增
Student stu = new Student();
out.println("请输入学员姓名:");
stu.setSname(in.nextLine());
boolean ret = false;
do {
out.println("请输入学员班级编号:");
try {
int code = Integer.parseInt(in.nextLine());
stu.setCid(code);
ret = true;
} catch (NumberFormatException e) {
out.println("班级编号必须为数字!!!");
ret = false;
}
} while (!ret);
try {
sdao.add(stu);
} catch (Exception e) {
// 通知服务器端
e.printStackTrace();
// 通知客户端
out.println("新增学员失败,原因是:" + e.getMessage());
}
break;
case 9:
break;
default:
out.println("请输入合法数字!");
break;
}
} while (!"9".equals(choice));
}
}
******************************
package com.itshixun.biz;
import java.io.IOException;
public class Run {
public static void main(String[] args) throws IOException,
ClassNotFoundException {
SocketServer ss = new SocketServer();
ss.start();
}
}
*******************************
package com.itshixun.biz;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer {
public static final int serverPort = 1;
public SocketServer() {
}
public void start() throws IOException, ClassNotFoundException {
ServerSocket ss = new ServerSocket(serverPort);
System.out.println("服务器:" + ss.getInetAddress() + " 端口"
+ ss.getLocalPort());
while (true) {
new MultiSocketClient(ss.accept()).start();
}
}
}
***************************************
package com.itshixun.dao;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Collection;
import java.util.Properties;
/**
* 可复用的数据库管理类 非线程安全!!!!!!
*/
public class DBManager {
// 创建jdbc的操作对象
private Connection conn;
private Statement stmt;
private PreparedStatement pstmt;
private ResultSet rs;
// 配置文件路径(相对于根)
private static final String propFilePath = "database.properties";
// 配置文件解析对象
private Properties prop;
// 构造方法
public DBManager() throws IOException, ClassNotFoundException {
// 注册驱动
prop = new Properties();
prop.load(Thread.currentThread().getContextClassLoader()
.getResourceAsStream(propFilePath));
// 注册
Class.forName(prop.getProperty("jdbc.drivers"));
}
// 获得Conn
public Connection getConn() throws SQLException {
if (conn == null) {
conn = DriverManager.getConnection(prop.getProperty("jdbc.url"),
prop.getProperty("jdbc.username"), prop
.getProperty("jdbc.password"));
}
return conn;
}
// 获得stmt
public Statement getStmt() throws SQLException {
if (stmt == null) {
stmt = getConn().createStatement();
}
return stmt;
}
public ResultSet executeQuery(String sql) throws SQLException {
rs = getStmt().executeQuery(sql);
return rs;
}
public int executeUpdate(String sql) throws SQLException {
int ret = 0;
ret = getStmt().executeUpdate(sql);
return ret;
}
public Object execute(String sql) throws SQLException {
boolean result = false;
Object ret = null;
result = getStmt().execute(sql);
if (result) {
ret = getStmt().getResultSet();
} else {
ret = getStmt().getUpdateCount();
}
return ret;
}
public Object executePreparedStatement(String sql, Collection<?> param)
throws SQLException {
Object ret = null;
pstmt = getConn().prepareStatement(sql);
// 参数从1开始计数
int i = 1;
for (Object object : param) {
// i++ == i 然后 i=i+1
pstmt.setObject(i++, object);
}
boolean result = pstmt.execute();
if (result) {
ret = pstmt.getResultSet();
} else {
ret = pstmt.getUpdateCount();
}
return ret;
}
public void close() {
try {
conn.close();
} catch (SQLException e) {
} finally {
conn = null;
pstmt = null;
stmt = null;
rs = null;
}
}
}
************************
package com.itshixun.dao;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import com.itshixun.entity.SchoolClass;
import com.itshixun.entity.Student;
public class SchoolClassDAO {
private DBManager dbm;
public SchoolClassDAO() throws IOException, ClassNotFoundException {
dbm = new DBManager();
}
public void add(SchoolClass schoolClass) throws SQLException {
Collection param = new ArrayList();
param.add(schoolClass.getCname());
dbm.executePreparedStatement(
"insert into schoolclass(cname) values(?)", param);
dbm.close();
}
public Collection<SchoolClass> findAll() throws SQLException {
Collection<SchoolClass> schoolClassList = new LinkedList<SchoolClass>();
ResultSet rs = dbm.executeQuery("select * from SchoolClass");
while (rs.next()) {
schoolClassList.add(new SchoolClass(rs.getInt(1), rs.getString(2)));
}
return schoolClassList;
}
}
************************
package com.itshixun.dao;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import com.itshixun.entity.Student;
public class StudentDAO {
private DBManager dbm;
public StudentDAO() throws IOException, ClassNotFoundException {
dbm = new DBManager();
}
public void add(Student student) throws SQLException {
Collection param = new ArrayList();
param.add(student.getSname());
param.add(student.getCid());
dbm.executePreparedStatement(
"insert into student(sname, cid) values(?,?)", param);
dbm.close();
}
public Collection<Student> findAll() throws SQLException {
Collection<Student> stuList = new LinkedList<Student>();
ResultSet rs = dbm.executeQuery("select * from student");
while (rs.next()) {
stuList
.add(new Student(rs.getInt(1), rs.getString(2), rs
.getInt(3)));
}
return stuList;
}
}
*********************
package com.itshixun.entity;
import java.io.Serializable;
public class SchoolClass implements Serializable {
private static final long serialVersionUID = 5487387062133649557L;
private int cid;
private String cname;
public int getCid() {
return cid;
}
public void setCid(int cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public SchoolClass(int cid, String cname) {
super();
this.cid = cid;
this.cname = cname;
}
public SchoolClass() {
super();
// TODO Auto-generated constructor stub
}
}
************************
package com.itshixun.entity;
import java.io.Serializable;
public class Student implements Serializable {
private static final long serialVersionUID = -8694444462325077370L;
private int sid;
private String sname;
private int cid;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public int getCid() {
return cid;
}
public void setCid(int cid) {
this.cid = cid;
}
public Student(int sid, String sname, int cid) {
super();
this.sid = sid;
this.sname = sname;
this.cid = cid;
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
}
===================================================================================
studentdb.sql文件///在查询分析器运行和刷新即可。就可以得到数据库及相应表。
************************************************************
/*
MySQL Data Transfer
Source Host: localhost
Source Database: studentdb
Target Host: localhost
Target Database: studentdb
Date: 2009-10-15 11:50:15
*/
DROP Database IF EXISTS `studentdb`;
CREATE Database `studentdb`;
use`studentdb`
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for schoolclass
-- ----------------------------
DROP TABLE IF EXISTS `schoolclass`;
CREATE TABLE `schoolclass` (
`cid` int(11) NOT NULL auto_increment,
`cname` varchar(10) NOT NULL,
PRIMARY KEY
(`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`sid` int(11) NOT NULL auto_increment,
`sname` varchar(10) NOT NULL,
`cid` int(11)
NOT NULL,
PRIMARY KEY (`sid`),
KEY `fk` (`cid`),
CONSTRAINT `fk` FOREIGN KEY (`cid`) REFERENCES `schoolclass`
(`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `schoolclass` VALUES ('1', '天才班');
INSERT INTO `schoolclass` VALUES ('2', '人才班');
INSERT INTO `student` VALUES ('1', '的萨菲', '1');
INSERT INTO `student` VALUES ('2', '而为', '2');
INSERT INTO `student` VALUES ('3', 'kilo', '1');
=================================================================================
database.properties 文件 放置在src包下;
jdbc.drivers=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/studentdb?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=
==================================================================================
package com.itshixun.biz;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Scanner;
import com.itshixun.dao.SchoolClassDAO;
import com.itshixun.dao.StudentDAO;
import com.itshixun.entity.Student;
public class MultiSocketClient extends Thread {
private StudentDAO sdao;
private SchoolClassDAO scdao;
private Socket socket;
private static final String sepStr = "------------------------------";
private static final String inputMsg = "请输入选择的编号:";
public Socket getSocket() {
return socket;
}
public void setSocket(Socket socket) {
this.socket = socket;
}
/**
* 工作方法
*/
@Override
public void run() {
Scanner in = null;
PrintWriter out = null;
try {
in = new Scanner(socket.getInputStream());
out = new PrintWriter(socket.getOutputStream(), true);
out.println("欢迎来到学校!");
topmenu(in, out);
out.println("再见!");
} catch (Exception e) {
e.printStackTrace();
if (out != null) {
out.println("出现异常 原因是:" + e.getMessage() + " 连接关闭");
}
} finally {
try {
socket.close();
} catch (IOException e) {
}
}
}
public MultiSocketClient(Socket socket) throws IOException,
ClassNotFoundException {
setSocket(socket);
sdao = new StudentDAO();
scdao = new SchoolClassDAO();
}
/**
*
* @param in
* @param out
* @throws SQLException
*/
public void topmenu(Scanner in, PrintWriter out) throws SQLException {
String choice = null;
do {
out.println(sepStr);
out.println(String.format("%5d%15S", 1, "Student"));
out.println(String.format("%5d%15S", 2, "SchoolClass"));
out.println(String.format("%5d%15S", 9, "exit"));
out.println(sepStr);
out.println(inputMsg);
choice = in.nextLine();
int intChoice = 0;
try {
intChoice = Integer.parseInt(choice);
} catch (NumberFormatException e) {
out.println("请输入数字!");
continue;
}
switch (intChoice) {
case 1:
opStudent(in, out);
break;
case 2:
opSchoolClass(in, out);
break;
case 9:
break;
default:
out.println("请输入合法数字!");
break;
}
} while (!"9".equals(choice));
}
private void opSchoolClass(Scanner in, PrintWriter out) {
}
private void opStudent(Scanner in, PrintWriter out) throws SQLException {
String choice = null;
do {
out.println(sepStr);
out.println(String.format("%5d%15S", 1, "学员列表"));
out.println(String.format("%5d%15S", 2, "新增学员"));
out.println(String.format("%5d%15S", 9, "exit"));
out.println(sepStr);
out.println(inputMsg);
choice = in.nextLine();
int intChoice = 0;
try {
intChoice = Integer.parseInt(choice);
} catch (NumberFormatException e) {
out.println("请输入数字!");
continue;
}
switch (intChoice) {
case 1:
Collection<Student> findAll = sdao.findAll();
out.println(sepStr);
out.println(String.format("%S/t%S/t%S", "学号", "学员姓名", "班级号"));
out.println(sepStr);
for (Student student : findAll) {
out.println(String.format("%S/t%S/t%S", student.getSid(),
student.getSname(), student.getCid()));
}
out.println(sepStr);
break;
case 2:
// 新增
Student stu = new Student();
out.println("请输入学员姓名:");
stu.setSname(in.nextLine());
boolean ret = false;
do {
out.println("请输入学员班级编号:");
try {
int code = Integer.parseInt(in.nextLine());
stu.setCid(code);
ret = true;
} catch (NumberFormatException e) {
out.println("班级编号必须为数字!!!");
ret = false;
}
} while (!ret);
try {
sdao.add(stu);
} catch (Exception e) {
// 通知服务器端
e.printStackTrace();
// 通知客户端
out.println("新增学员失败,原因是:" + e.getMessage());
}
break;
case 9:
break;
default:
out.println("请输入合法数字!");
break;
}
} while (!"9".equals(choice));
}
}
******************************
package com.itshixun.biz;
import java.io.IOException;
public class Run {
public static void main(String[] args) throws IOException,
ClassNotFoundException {
SocketServer ss = new SocketServer();
ss.start();
}
}
*******************************
package com.itshixun.biz;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer {
public static final int serverPort = 1;
public SocketServer() {
}
public void start() throws IOException, ClassNotFoundException {
ServerSocket ss = new ServerSocket(serverPort);
System.out.println("服务器:" + ss.getInetAddress() + " 端口"
+ ss.getLocalPort());
while (true) {
new MultiSocketClient(ss.accept()).start();
}
}
}
***************************************
package com.itshixun.dao;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Collection;
import java.util.Properties;
/**
* 可复用的数据库管理类 非线程安全!!!!!!
*/
public class DBManager {
// 创建jdbc的操作对象
private Connection conn;
private Statement stmt;
private PreparedStatement pstmt;
private ResultSet rs;
// 配置文件路径(相对于根)
private static final String propFilePath = "database.properties";
// 配置文件解析对象
private Properties prop;
// 构造方法
public DBManager() throws IOException, ClassNotFoundException {
// 注册驱动
prop = new Properties();
prop.load(Thread.currentThread().getContextClassLoader()
.getResourceAsStream(propFilePath));
// 注册
Class.forName(prop.getProperty("jdbc.drivers"));
}
// 获得Conn
public Connection getConn() throws SQLException {
if (conn == null) {
conn = DriverManager.getConnection(prop.getProperty("jdbc.url"),
prop.getProperty("jdbc.username"), prop
.getProperty("jdbc.password"));
}
return conn;
}
// 获得stmt
public Statement getStmt() throws SQLException {
if (stmt == null) {
stmt = getConn().createStatement();
}
return stmt;
}
public ResultSet executeQuery(String sql) throws SQLException {
rs = getStmt().executeQuery(sql);
return rs;
}
public int executeUpdate(String sql) throws SQLException {
int ret = 0;
ret = getStmt().executeUpdate(sql);
return ret;
}
public Object execute(String sql) throws SQLException {
boolean result = false;
Object ret = null;
result = getStmt().execute(sql);
if (result) {
ret = getStmt().getResultSet();
} else {
ret = getStmt().getUpdateCount();
}
return ret;
}
public Object executePreparedStatement(String sql, Collection<?> param)
throws SQLException {
Object ret = null;
pstmt = getConn().prepareStatement(sql);
// 参数从1开始计数
int i = 1;
for (Object object : param) {
// i++ == i 然后 i=i+1
pstmt.setObject(i++, object);
}
boolean result = pstmt.execute();
if (result) {
ret = pstmt.getResultSet();
} else {
ret = pstmt.getUpdateCount();
}
return ret;
}
public void close() {
try {
conn.close();
} catch (SQLException e) {
} finally {
conn = null;
pstmt = null;
stmt = null;
rs = null;
}
}
}
************************
package com.itshixun.dao;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import com.itshixun.entity.SchoolClass;
import com.itshixun.entity.Student;
public class SchoolClassDAO {
private DBManager dbm;
public SchoolClassDAO() throws IOException, ClassNotFoundException {
dbm = new DBManager();
}
public void add(SchoolClass schoolClass) throws SQLException {
Collection param = new ArrayList();
param.add(schoolClass.getCname());
dbm.executePreparedStatement(
"insert into schoolclass(cname) values(?)", param);
dbm.close();
}
public Collection<SchoolClass> findAll() throws SQLException {
Collection<SchoolClass> schoolClassList = new LinkedList<SchoolClass>();
ResultSet rs = dbm.executeQuery("select * from SchoolClass");
while (rs.next()) {
schoolClassList.add(new SchoolClass(rs.getInt(1), rs.getString(2)));
}
return schoolClassList;
}
}
************************
package com.itshixun.dao;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import com.itshixun.entity.Student;
public class StudentDAO {
private DBManager dbm;
public StudentDAO() throws IOException, ClassNotFoundException {
dbm = new DBManager();
}
public void add(Student student) throws SQLException {
Collection param = new ArrayList();
param.add(student.getSname());
param.add(student.getCid());
dbm.executePreparedStatement(
"insert into student(sname, cid) values(?,?)", param);
dbm.close();
}
public Collection<Student> findAll() throws SQLException {
Collection<Student> stuList = new LinkedList<Student>();
ResultSet rs = dbm.executeQuery("select * from student");
while (rs.next()) {
stuList
.add(new Student(rs.getInt(1), rs.getString(2), rs
.getInt(3)));
}
return stuList;
}
}
*********************
package com.itshixun.entity;
import java.io.Serializable;
public class SchoolClass implements Serializable {
private static final long serialVersionUID = 5487387062133649557L;
private int cid;
private String cname;
public int getCid() {
return cid;
}
public void setCid(int cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public SchoolClass(int cid, String cname) {
super();
this.cid = cid;
this.cname = cname;
}
public SchoolClass() {
super();
// TODO Auto-generated constructor stub
}
}
************************
package com.itshixun.entity;
import java.io.Serializable;
public class Student implements Serializable {
private static final long serialVersionUID = -8694444462325077370L;
private int sid;
private String sname;
private int cid;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public int getCid() {
return cid;
}
public void setCid(int cid) {
this.cid = cid;
}
public Student(int sid, String sname, int cid) {
super();
this.sid = sid;
this.sname = sname;
this.cid = cid;
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
}
相关文章推荐
- java jdbc(三)应用实例--向数据库中存储,读取图片和文件
- jsonp与Java结合应用实例
- 接口的多态使用; 接口应用实例:U盘、打印机可以使用共同的USB接口,插入到电脑上实现各自的功能。
- java工厂模式应用——多数据库分页实现(结合Spring)
- 一款功能强大并且可以结合html5实现本地存储的数据库 – SQLite学习文档
- 学生选课系统-教师功能模块设计(Java+NetBeans+SQLServer2008)
- JAVA疯狂讲义第三版4.6.6数组的应用举例代码功能扩展
- Java学习笔记-----Java操作数据库:可以运行的实例
- 一款功能强大并且可以结合html5实现本地存储的数据库 – SQLite学习文档
- Python实现日志自动记录功能(一个思路代码,详细可以自己扩展)
- 学生选课系统-管理员功能模块设计(Java+NetBeans+SQLServer2008)
- 基于vega的pick功能与数据库结合的实例
- 制作任何应用都可以安装的扩展(火狐,雷鸟...自己写的也可以)
- android使用Dialog实现复选功能与数据库结合综合实例
- 数据库-学生选课系统实例(关系查询的使用方法)
- 【慕课笔记】第四章 JAVA中的集合框架(上) 第9节 学生选课—应用泛型管理课程(一)
- 一款功能强大并且可以结合html5实现本地存储的数据库 – SQLite学习文档
- 新手提问 想要做一个单机android应用,要实现注册登录功能。目前折在了连数据库这一步上,也不知道自己这么做对不对,哪儿错了。求教求教!
- 黑马程序员-9-java-IO流知识点串讲(3)-IO修饰(功能扩展)类及其应用