我正在寻找一个工具/框架来(自动)生成一个Swing用户界面来对底层数据库执行CRUD操作.
我还想配置应该公开的数据库字段.像django(通过modelforms)或ruby on rails功能,但在Java桌面环境中.
使用将用于抽象DAL操作的接口在BL上实现CRUD的最佳方法是什么?我需要你的意见...
这是我的选秀..
映射在数据库表中的数据实体
public class Student
{
public string StudentId { get; set; }
public string StudentName { get; set; }
public Course StudentCourse { get; set; }
}
public class Course
{
public string CourseCode { get; set; }
public string CourseDesc { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个CRUD接口来抽象对象的操作
public interface IMaintanable<T>
{
void Create(T obj);
T Retrieve(string key);
void Update(string key);
void Delete(string key);
}
Run Code Online (Sandbox Code Playgroud)
然后是通过实现接口来管理实体及其操作的组件
public class StudentManager : IMaintainable<Student>
{
public void Create(Student obj)
{
// inserts …Run Code Online (Sandbox Code Playgroud) 正如我已经发现的那样,Doctrine2" 不支持通过SQL中的"DEFAULT"关键字在列中设置默认值....您可以使用类属性作为默认值 ".
class Product
{
// ...
/**
* @var string $name
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name = "";
/**
* @var string $sale
*
* @ORM\Column(name="sale", type="boolean")
*/
private $sale = false;
Run Code Online (Sandbox Code Playgroud)
但即使我这样做,生成的CRUD表单仍然要求我填写所有表格.在布尔属性的情况下,这甚至意味着我只能将其设置为true(即1).
难道我做错了什么?
(我知道我可以关闭验证,但我想解决问题,而不是绕过它)
我是LINQ to SQL的新手,并尝试为基本的创建,读取,更新和销毁(CRUD)方法创建通用数据访问对象(DAO),以便我可以重用代码.我成功地创建了一个通用方法,它将使用下面的代码删除任何实体但是,我想知道是否有人知道如何创建一个通用方法,它将通过所有表中存在的公共Id字段选择任何实体.
/// <summary>
/// Generic method that deletes an entity of any type using LINQ
/// </summary>
/// <param name="entity"></param>
/// <returns>bool indicating whether or not operation was successful</returns>
public bool deleteEntity(Object entity)
{
try
{
DomainClassesDataContext db = new DomainClassesDataContext();
db.GetTable(entity.GetType()).Attach(entity);
db.GetTable(entity.GetType()).DeleteOnSubmit(entity);
db.SubmitChanges();
return true;
}
catch(Exception ex)
{
Console.WriteLine(ex.StackTrace);
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我很确定相同的模式将适用于更新和插入,并希望在GenericDAO上有一个通用方法,它将根据实体Id检索我任何实体(即Customer,Invoice,WorkOrder等...).在此先感谢您的回复.
我使用play 2.0.1来构建我的应用程序.我也使用Ebean作为后端层,mysql作为数据库到目前为止.Java作为语言.
题:
是不是有CRUD模块(动态)或crud创建模块?我在互联网上看了一下,很难找到关于新游戏框架2.x的东西.
根据这个帖子,没有... [play-framework] [2.0] CRUD Administration.
但是有些答案很古老.也许有些东西正在筹备中?
提前致谢.
我不明白之间的差别read和list.根据维基百科:
首字母缩略词可以扩展到CRUDL,以涵盖大数据集的列表,当数据集太大而无法轻松保存在内存中时会带来额外的复杂性,如分页
我看到这个的方式只是一个阅读,如果你决定支持分页,你的结果将被分页.它并没有从根本上改变某人与系统交互的方式.你基本上是返回数据,即read.如果你想分页read结果怎么办?这会使它成为一个列表吗?
我目前在一个项目,我们要求支持列表和阅读,除了分页,我很难看到任何实现差异.
还有其他原因你应该将它们分开read并list放入自己的功能中
如果数据库查询返回空,抛出异常的正确方法是什么?我正在尝试使用该.orElseThrow()方法,但它不会编译:
Meeting meeting = meetingRepository.findByMeetingId(meetingId).orElseThrow(new MeetingDoesNotExistException(meetingId));
Run Code Online (Sandbox Code Playgroud)
编译器说:
"他的方法orElseThrow(Supplier)中的Optional类型不适用于参数(MeetingRestController.MeetingDoesNotExistException)
是否可以使用lambda表达式执行此操作?
CrudRepository:
import java.util.Optional;
import org.springframework.data.repository.CrudRepository;
public interface MeetingRepository extends CrudRepository<Meeting, Long>{
Optional<Meeting> findByMeetingId(Long id);
}
Run Code Online (Sandbox Code Playgroud)
例外:
@ResponseStatus(HttpStatus.CONFLICT) // 409
class MeetingDoesNotExistException extends RuntimeException{
public MeetingDoesNotExistException(long meetingId){
super("Meeting " + meetingId + " does not exist.");
}
}
Run Code Online (Sandbox Code Playgroud) 基于CRUD的应用程序部分需要:
事件采购(或"命令模式")是我正在寻找完成这些项目.我觉得用这个解决2和3感觉很舒服,但对于第一项,同步并不清楚.
如果时间戳用于每个命令(如果需要),那么脱机命令是否需要像实时(合并)一样应用于主系统,或者我可以认为它们应用于任何结束时命令(具有更新的时间戳)?
基于命令的同步的任何基本算法描述都会有所帮助.
我需要使用ObjectIdHex获取值并进行更新并查看结果.我正在使用mongodb和golang.But以下代码无法按预期工作
package main
import (
"fmt"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
)
type Person struct {
Id bson.ObjectId `json:"id" bson:"_id,omitempty"`
Name string
Phone string
}
func checkError(err error) {
if err != nil {
panic(err)
}
}
const (
DB_NAME = "gotest"
DB_COLLECTION = "pepole_new1"
)
func main() {
session, err := mgo.Dial("localhost")
checkError(err)
defer session.Close()
session.SetMode(mgo.Monotonic, true)
c := session.DB(DB_NAME).C(DB_COLLECTION)
err = c.DropCollection()
checkError(err)
ale := Person{Name:"Ale", Phone:"555-5555"}
cla := Person{Name:"Cla", Phone:"555-1234-2222"}
kasaun := Person{Name:"kasaun", Phone:"533-12554-2222"}
chamila := Person{Name:"chamila", Phone:"533-545-6784"}
fmt.Println("Inserting")
err …Run Code Online (Sandbox Code Playgroud) 在发布Symfony 4.0后,没有支持SensioGeneratorBundle.因此该命令php app/console generate:doctrine:crud不可用.
他们建议使用MakerBundle,但我无法找到CRUD生成的合适替代品.
有人可以帮忙吗?
crud ×10
java ×3
c# ×2
architecture ×1
dao ×1
database ×1
frameworks ×1
function ×1
go ×1
java-8 ×1
linq ×1
linq-to-sql ×1
mongodb ×1
offline ×1
pagination ×1
php ×1
spring ×1
spring-boot ×1
swing ×1
symfony ×1
symfony4 ×1