我的第一个MVC项目
p
ackage com.sdjt.dao; import java.util.ArrayList;
import java.util.List; import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
import org.junit.Test; import com.sdjt.utils.C3Utils; /**
* 实现操作增删改查
*
* @author lx
*
*/ public class PersonDaoJdb {
/*
* 实现查询
*/ public List<Object[]> query(String id, String name, Integer age, String sex) {
List<Object[]> list = new ArrayList<>();
try { String sql = "select p_id id,p_name name,p_age age,"
+ "(case sex when '1' then '男' else '女' end) sex"
+ " from person where 1=1"; List<Object> param = new ArrayList<>();
if (id != null && !id.trim().equals("")) {
sql += " and p_id like ?";
param.add("%" + id.trim() + "%");
}
if (name != null && !name.trim().equals("")) {
sql += " and p_name like ?";
param.add("%" + name.trim() + "%");
}
if (age != null) {
sql += " and p_age=?";
param.add(age);
}
if (sex != null && !sex.trim().equals("")) {
sql += " and sex=?";
param.add(sex.trim());
}
QueryRunner run = new QueryRunner(C3Utils.getDs()); list = run.query(sql, new ArrayListHandler(), param.toArray());
System.err.println("sql is:"+sql);
} catch (Exception e) {
throw new RuntimeException(e);
}
return list;
} /**
* 实现保存
*/ public void save(String id, String name,String age, String sex) { try { String sql = "insert into person values(?,?,?,?)";
QueryRunner run = new QueryRunner(C3Utils.getDs());
run.update(sql, id,name,age,sex); } catch (Exception e) {
e.printStackTrace();
} } public void delete(String id, String name,String age, String sex) { try {
String sql = "delete from person where ";
if (id != null && !id.trim().equals("")) {
sql += "p_id= ?";
QueryRunner run = new QueryRunner(C3Utils.getDs());
run.update(sql,id);
System.err.println("删除成功"); } else {
System.err.println("删除出错"); } } catch (Exception e) {
e.printStackTrace();
} } } package com.sdjt.frame; import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Label; import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel; import com.sdjt.person.Action.PersonAction;
import com.sdjt.utils.MyModelFrame; public class Frame extends JFrame { /**
*
*/
private static final long serialVersionUID = 1L;
Label lable1 = new Label("编号");
Label lable2 = new Label("姓名");
Label lable3 = new Label("年龄");
Label lable4 = new Label("性别");
JButton save = new JButton("保存");
JButton delete = new JButton("删除");
JTextField idtext = new JTextField(5);
JTextField nametext = new JTextField(5);
JTextField agetext = new JTextField(5);
JTable table;
DefaultTableModel dt;
// 下拉框
JComboBox<String> sextext = new JComboBox<String>(new String[] { "", "男",
"女" }); public Frame() {
// 控制层 接受用户信息
PersonAction pa = new PersonAction(this);
// 获取当前jframe上的对象
Container con = getContentPane();
con.setLayout(new BorderLayout());
JPanel jp = new JPanel(new FlowLayout(FlowLayout.LEFT));
jp.add(lable1);
jp.add(idtext);
jp.add(lable2);
jp.add(nametext);
jp.add(lable3);
jp.add(agetext);
jp.add(lable4);
jp.add(sextext);
JButton query = new JButton("查询");
query.setActionCommand("query");
jp.add(query);
query.addActionListener(pa);
save.setActionCommand("save");
jp.add(save);
save.addActionListener(pa); delete.setActionCommand("delete");
jp.add(delete);
delete.addActionListener(pa); // 实例化表格数据+表头
dt = new MyModelFrame(null, new String[] { "编号", "name", "age", "sex" });
con.add(jp, BorderLayout.NORTH);
table = new JTable(dt);
// //设置单行选择
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// 将t放在中间用JScrollPanel设置table可以带上下滚动条
con.add(new JScrollPane(table), BorderLayout.CENTER); // 监听窗口关闭按钮
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(300, 300, 700, 300);
setVisible(true);
} public JTable getTable() {
return table;
} public JTextField getIdtext() {
return idtext;
} public JTextField getNametext() {
return nametext;
} public JTextField getAgetext() {
return agetext;
} public JComboBox<String> getSextext() {
return sextext;
} public static void main(String[] args) {
new Frame();
} public DefaultTableModel getDt() {
return dt;
} }
package com.sdjt.person.Action; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import javax.swing.JOptionPane;
import com.sdjt.frame.Frame;
import com.sdjt.person.serverce.PersonServer; public class PersonAction implements ActionListener { // 声明serverce
private PersonServer service = new PersonServer();
private Frame fr; public PersonAction(Frame fr) {
this.fr = fr;
} @Override
public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("query")) { System.err.println("query..");
// 删除原有的
int rows = fr.getDt().getRowCount();
for (int i = 0; i < rows; i++) {
fr.getDt().removeRow(0); } // 查询
String id = fr.getIdtext().getText();
String name = fr.getNametext().getText();
String age = fr.getAgetext().getText();
String sex = fr.getSextext().getSelectedItem().toString(); if (sex.equals("男")) {
sex = "1"; } else if (sex.equals("女")) {
sex = "0"; } Integer _age = age.equals("") ? null : Integer.valueOf(age);
System.err.println(id + "," + name + "," + age + "," + sex); // 调用serverce // List<Object[]> list = service.query(id, name, _age, sex);
List<Object[]> list = service.query(id, name, _age, sex);
for (Object[] oo : list) {
fr.getDt().addRow(oo);
System.err.println("添加成功"); } } else if (e.getActionCommand().equals("save")) { // 获取数据
String id = fr.getIdtext().getText();
String name = fr.getNametext().getText();
String age = fr.getAgetext().getText();
String sex = fr.getSextext().getSelectedItem().toString();
if (id == null || id.trim().equals("")) {
JOptionPane.showMessageDialog(fr, "必须输入编号");
return;
}
if (sex == null || sex.trim().equals("")) {
JOptionPane.showMessageDialog(fr, "必须输入性别");
return;
}
// 调用保存 service.save(id, name, age, sex);
// 保存成功后
fr.getDt().addRow(new String[] { id, name, age, sex });
System.err.println("baocn"); } else if (e.getActionCommand().equals("delete")) {
// String id = fr.getIdtext().getText();
String name = fr.getNametext().getText();
String age = fr.getAgetext().getText();
String sex = fr.getSextext().getSelectedItem().toString();
int row = fr.getTable().getSelectedRow();
if (row == -1) {
JOptionPane.showMessageDialog(fr, "plz choose one row...");
return; }
String id1 = (String) fr.getDt().getValueAt(row, 0);
int a = JOptionPane.showConfirmDialog(fr, "你确定要删除" + id1 + "吗?",
"删除", JOptionPane.YES_NO_OPTION);
service.delete(id1, name, age, sex);
fr.getDt().addRow(new String[] { id1, "已经被删除" });
// System.err.println("--" + a);
// Integer _age = age.equals("") ? null : Integer.valueOf(age);
// List<Object[]> list = service.query(id1, name, _age, sex);
// for (Object[] oo : list) {
// fr.getDt().addRow(oo);
// System.err.println("添加成功");
//
// } } }
}
package com.sdjt.person.serverce; import java.util.List; import com.sdjt.dao.PersonDaoJdb; public class PersonServer { // 声明dao 注入dao
private PersonDaoJdb dao = new PersonDaoJdb(); public List<Object[]> query(String id, String name, Integer age, String sex) {
return dao.query(id, name, age, sex); } public void save(String id, String name, String age, String sex) { sex = sex.equals("男") ? "1" : "0";
dao.save(id, name, age, sex); } public void delete(String id, String name,String age, String sex) { dao.delete(id, name, age, sex); } }
package com.sdjt.utils; import java.sql.Connection; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3Utils {
private static DataSource ds;
static{
ds=new ComboPooledDataSource(); } public static DataSource getDs() {
return ds;
} public static Connection getCon() {
Connection con = null;
try { con = ds.getConnection(); } catch (Exception e) {
e.printStackTrace();
}
return con; }
// public static void main(String[] args) {
// System.err.println(C3Utils.getCon());
// } }
package com.sdjt.utils; import javax.swing.table.DefaultTableModel; /**
* 表格模版
*
* @author lx
*
*/
public class MyModelFrame extends DefaultTableModel { public MyModelFrame(Object[][] data, Object[] header) { super(data, header);
}
//返回false不能修改数据
@Override
public boolean isCellEditable(int row, int column) {
if(row==2){
return true; }
return false;
} }
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<!-- 最多可以创建多少个statement -->
<!-- 最多可以创建多少个statement -->
<property name="maxStatements">50</property>
<!-- 最多有多少个连接 -->
<property name="maxPoolSize">4</property>
<property name="initialPoolSize">2</property>
<property name="acquireIncrement">2</property>
<property name="minPoolSize">2</property>
<!-- 连接的超时间 -->
<property name="checkoutTimeout">3000</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///abc
</property>
<property name="user">root</property>
<property name="password">1234</property>
</default-config> <!-- 配置其他的连接,用户的其他配置可以有多个 --> <named-config name="jtedu"> <property name="maxStatements">50</property>
<!-- 最多有多少个连接 -->
<property name="maxPoolSize">4</property>
<property name="initialPoolSize">2</property>
<property name="acquireIncrement">2</property>
<property name="minPoolSize">2</property>
<!-- 连接的超时间 -->
<property name="checkoutTimeout">3000</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///abc
</property>
<property name="user">root</property>
<property name="password">1234</property>
</named-config>
</c3p0-config>
我的第一个MVC项目的更多相关文章
- 1.开始第一个MVC项目
安装就不说了 1.在指定路径创建好项目文件夹之后,打开cmd,进去这个文件夹路径下 输入命令 dotnet new mvc 就会在文件夹内创建一个mvc项目 2.创建好项目之后 直接在这个路径下输入 ...
- .net core 第一个mvc项目目录结构简析
创建项目的命令 首先来认识一下创建项目可使用的各种命令,.NETCore 的命令都以 dotnet 打头,这很好理解,输入 dotnet xxx,就是执行环境变量指向的 C:\Program ...
- ASP.NET + MVC5 入门完整教程三 (上) ---第一个MVC项目
https://blog.csdn.net/qq_21419015/article/details/80420815 第一个MVC应用程序 1创建MVC项目 打开VS ,File--新建--项目,选择 ...
- 《ASP.NET MVC 5 破境之道》:第一境 ASP.Net MVC5项目初探 — 第一节:运行第一个MVC5项目
第一境 ASP.Net MVC5项目初探 — 第一节:运行第一个MVC5项目 创建一个MVC项目,是很容易的,大部分工作,VS都帮我们完成了.只需要按照如下步骤按部就班就可以了. 打开VS2017,选 ...
- 创建一个MVC解决方案,添加一个控制器后,运行程序报错:”/"未找到服务器
1.创建一个MVC项目,如图
- .NET MVC项目设置包含Areas中的页面为默认启动页
利用vs创建一个MVC项目后,一般的默认启动页是根目录下-->Controllers-->HomeController-->Index这个方法对应的页面. 我先说下创建Areas的流 ...
- Pro ASP.NET MVC –第二章 第一个MVC程序
学习一个软件开发框架的最有效的方式就是了解并使用它.在本章,你将会创建一个简单基于ASP.NET MVC Framework的数据-实体应用程序.我们会该程序划分成若干小块,每次介绍一个部分,以便你能 ...
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
C#编译器优化那点事 使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码 ...
- WSL2 新建dotnet core mvc项目
我们知道dotnet sdk会有很多命令,但在我们完全不知道如何去使用哪个命令. 我们使用dotnet -h进行查看: 我们看到SDK的new命令,但是new命令又如何使用呢? 我们再次使用帮助: 可 ...
随机推荐
- VPN错误789:L2TP连接尝试失败
VPN 错误789:l2tp 连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误 Windows配置VPN,选择“使用IPsec的第2层隧道协议(L2TP/IPSec)”时, XP系 ...
- 多种下载文件方式 Response.BinaryWrite(byte[] DocContent);Response.WriteFile(System.IO.FileInfo DownloadFile .FullName);Response.Write(string html2Excel);
通过html给xls赋值,并下载xls文件 一.this.Response.Write(sw.ToString());System.IO.StringWriter sw = new System.IO ...
- C#创建Windows服务的几个注意事项
1.服务安装后的自动启动:服务的StartType即使配置成Automatic,在首次安装成功之后还是要在服务列表中找到并手工启动.此外,可以通过在ProjectInstaller中添加AfterIn ...
- 读取Webpage表中的内容
nutch将从网页中抓取到的信息放入hbase数据库中,默认情况下表名为$crawlId_webpage,但表中的内容以16进制进行表示,直接scan或者通过Java API进行读取均只能读取到16进 ...
- dynamic和object浅谈
要想知道dynamic和object的关系必须先理解它们的含义 C# 4.0提供了一个dynamic 关键字.在MSDN里是这样描述:在通过 dynamic 类型实现的操作中,该类型的作用是绕过编译时 ...
- 大转盘Demo
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 畅通工程续--hdu1874
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- js实现选项卡切换的三种方式
前两种主要实现一个选项卡的切换,第三种使用闭包看书,构造函数实现多个选项卡的切换: 1.第一种实现实现效果为: 实现代码为: <!doctype html> <!DOCTYPE ht ...
- c# post方式发送请求
public static bool CheckNew(string serverIP) { bool passed = false; try { string url = string.Format ...
- Qt判断和打开进程(windows端),运行,检测,中止
windows端的Qt程序往往需要打开外部程序(如:prog.exe),并且需要确定这个外部程序是唯一打开的. 1.判断系统中是否存在prog.exe void judge() { QProcess ...